[Crash-utility] x86 remap allocator in kernel 3.0

Petr Tesarik ptesarik at suse.cz
Tue Jan 10 18:23:24 UTC 2012


Dne Út 10. ledna 2012 19:14:32 Petr Tesarik napsal(a):
> Hi folks,
> 
> I've just discovered that the crash utility fails to initialize the vm
> subsystem properly on our latest SLES 32-bit kernels. It turns out that our
> kernels are compiled with CONFIG_DISCONTIGMEM=y, which causes pgdat structs
> to be allocated by the remap allocator (cf. arch/x86/mm/numa_32.c and also
> the code in setup_node_data).

Ah, I forgot a test case. I ran this on kernel-pae-3.0.13-0.5:

crash> kmem -n
[...]
NODE    SIZE    PGLIST_DATA   BOOTMEM_DATA   NODE_ZONES 
  1   1048576     f2800080        ----        f2800080  
                  ^^^^^^^^
                  Take this:

crash> vtop f2800080
VIRTUAL   PHYSICAL
f2800080  1fde00080

PAGE DIRECTORY: c08ed000
  PGD: c08ed018 => 8ea001
  PMD:   8eaca0 => 80000001fde001e3
 PAGE: 1fde00000  (2MB)

      PTE         PHYSICAL   FLAGS
80000001fde001e3  1fde00000  (PRESENT|RW|ACCESSED|DIRTY|PSE|GLOBAL|NX)

  PAGE     PHYSICAL   MAPPING    INDEX CNT FLAGS

Without the patch, the output begins like this:

crash> vtop f2800080
VIRTUAL   PHYSICAL
f2800080  32800080   <----- note the incorrect physical address
[...]

Petr Tesarik
SUSE Linux




More information about the Crash-utility mailing list