[Cbe-oss-dev] [PATCH] 64K support for Kexec
Luke Browning
lukebr at linux.vnet.ibm.com
Sat Apr 7 13:04:20 EST 2007
On Fri, 2007-04-06 at 23:58 -0300, Luke Browning wrote:
> This patch decodes the page size from the pte. This code is used by
> kexec, which walks the hash table and issues a tlbie for each
> valid entry. The page size is encoded in the virtual address that
> is passed to the tlbie instruction.
>
kexec doesn't boot all of the way, but it goes pretty far.
Here's the out of the two kexec commands.
Luke
# kexec -l vmlinux.kdump --append="maxcpus=0"
get memory ranges:1
Modified cmdline:maxcpus=0 root=/dev/hda3
segment[0].mem:0x610000 memsz:6291456
segment[1].mem:0xc10000 memsz:65536
segment[2].mem:0x1fff0000 memsz:65536
[root at cell tmp]# kexec -e
Starting new kernel
Found, Initializing memory management...
-> htab_initialize()
Page sizes from device-tree:
0: shift=0c, sllp=0000, avpnm=00000000, tlbiel=1, penc=0
1: shift=10, sllp=0110, avpnm=00000000, tlbiel=1, penc=1
4: shift=18, sllp=0100, avpnm=00000001, tlbiel=0, penc=0
Hash table allocated at 3f000000, size: 1000000
creating mapping for region: c000000000000000 : 40000000
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
<- htab_initialize()
<- early_setup()
-> setup_system()
-> initialize_cache_info()
<- initialize_cache_info()
-> smp_release_cpus()
<- smp_release_cpus()
<- setup_system()
Starting Linux PPC64 #10 SMP Fri Apr 6 17:22:00 BRT 2007
-----------------------------------------------------
ppc64_pft_size = 0x0
physicalMemorySize = 0x40000000
ppc64_caches.dcache_line_size = 0x80
ppc64_caches.icache_line_size = 0x80
htab_address = 0xc00000003f000000
htab_hash_mask = 0x1ffff
physical_start = 0x2000000
-----------------------------------------------------
Linux version 2.6.21-rc4 (luke at luke-desktop) (gcc version 4.1.1) #10 SMP
Fri Apr 6 17:22:00 BRT7
*** 0000 : CF000012
*** 0000 : Setup Arch
[boot]0012 Setup Arch
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
No ramdisk, default root is /dev/hda2
no ISA ranges or unexpected isa range size,mapping 64k
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
htab_bolt_mapping: calling c0000000024ceff8
mmio NVRAM, 1024k at 0x2401fb00000 mapped to d000080080060000
Zone PFN ranges:
DMA 0 -> 16384
Normal 16384 -> 16384
early_node_map[2] active PFN ranges
0: 0 -> 8192
1: 8192 -> 16384
*** 0000 : CF000015
*** 0000 : Setup Done
[boot]0015 Setup Done
Built 2 zonelists. Total pages: 16370
Kernel command line: maxcpus=0 root=/dev/hda3
htab_bolt_mapping: calling c0000000024ceff8
IIC for CPU 0 target id 0xe : /interrupt-controller at 20000508400
htab_bolt_mapping: calling c0000000024ceff8
IIC for CPU 1 target id 0xf : /interrupt-controller at 20000508400
htab_bolt_mapping: calling c0000000024ceff8
IIC for CPU 2 target id 0x1e : /interrupt-controller at 30000508400
htab_bolt_mapping: calling c0000000024ceff8
IIC for CPU 3 target id 0x1f : /interrupt-controller at 30000508400
htab_bolt_mapping: calling c0000000024ceff8
spider_pic: node 0, addr:
0x24000008000 /interrupt-controller at 24000008000
htab_bolt_mapping: calling c0000000024ceff8
spider_pic: node 1, addr:
0x34000008000 /interrupt-controller at 34000008000
PID hash table entries: 4096 (order: 12, 32768 bytes)
Using Cell machine description
Starting Linux PPC64 #10 SMP Fri Apr 6 17:22:00 BRT 2007
-----------------------------------------------------
ppc64_pft_size = 0x0
physicalMemorySize = 0x40000000
ppc64_caches.dcache_line_size = 0x80
ppc64_caches.icache_line_size = 0x80
htab_address = 0xc00000003f000000
htab_hash_mask = 0x1ffff
physical_start = 0x2000000
-----------------------------------------------------
Linux version 2.6.21-rc4 (luke at luke-desktop) (gcc version 4.1.1) #10 SMP
Fri Apr 6 17:22:00 BRT7
*** 0000 : CF000012
*** 0000 : Setup Arch
[boot]0012 Setup Arch
No ramdisk, default root is /dev/hda2
no ISA ranges or unexpected isa range size,mapping 64k
mmio NVRAM, 1024k at 0x2401fb00000 mapped to d000080080060000
Zone PFN ranges:
DMA 0 -> 16384
Normal 16384 -> 16384
early_node_map[2] active PFN ranges
0: 0 -> 8192
1: 8192 -> 16384
*** 0000 : CF000015
*** 0000 : Setup Done
[boot]0015 Setup Done
Built 2 zonelists. Total pages: 16370
Kernel command line: maxcpus=0 root=/dev/hda3
IIC for CPU 0 target id 0xe : /interrupt-controller at 20000508400
IIC for CPU 1 target id 0xf : /interrupt-controller at 20000508400
IIC for CPU 2 target id 0x1e : /interrupt-controller at 30000508400
IIC for CPU 3 target id 0x1f : /interrupt-controller at 30000508400
spider_pic: node 0, addr:
0x24000008000 /interrupt-controller at 24000008000
spider_pic: node 1, addr:
0x34000008000 /interrupt-controller at 34000008000
PID hash table entries: 4096 (order: 12, 32768 bytes)
Console: colour dummy device 80x25
Dentry cache hash table entries: 131072 (order: 4, 1048576 bytes)
Inode-cache hash table entries: 65536 (order: 3, 524288 bytes)
freeing bootmem node 0
freeing bootmem node 1
Memory: 1022528k/1048576k available (4416k kernel code, 26048k reserved,
832k data, 496k bss, 3)
Mount-cache hash table entries: 4096
Brought up 1 CPUs
NET: Registered protocol family 16
More information about the cbe-oss-dev
mailing list