Re: [PATCH] Fix overflow problem of "kmem -p" on i386 SPARSEMEM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ken'ichi Ohmichi wrote:
Hi,

This patch fixes the overflow problem that "kmem -p" cannot display
the physical addresses properly on i386 SPARSEMEM kernel.

Before applying this patch:
  crash> kmem -p
    PAGE    PHYSICAL   MAPPING    INDEX CNT FLAGS
  [snip]
  cb000260  ffffb000   -------    -----   1 e000400
  cb000280  ffffc000   -------    -----   1 e000400
  cb0002a0  ffffd000   -------    -----   1 e000400
  cb0002c0  ffffe000   -------    -----   1 e000400
  cb0002e0  fffff000   -------    -----   1 e000400
  cb000400         0   -------    -----   0 12080000
  cb000420      1000   -------    -----   0 12000000
  cb000440      2000   -------    -----   0 12000000
  cb000460      3000   -------    -----   0 12000000
  cb000480      4000   -------    -----   0 12000000

After applying this patch:
  crash> kmem -p
    PAGE    PHYSICAL   MAPPING    INDEX CNT FLAGS
  [snip]
  cb000260  ffffb000   -------    -----   1 e000400
  cb000280  ffffc000   -------    -----   1 e000400
  cb0002a0  ffffd000   -------    -----   1 e000400
  cb0002c0  ffffe000   -------    -----   1 e000400
  cb0002e0  fffff000   -------    -----   1 e000400
  cb000400  100000000   -------    -----   0 12080000
  cb000420  100001000   -------    -----   0 12000000
  cb000440  100002000   -------    -----   0 12000000
  cb000460  100003000   -------    -----   0 12000000
  cb000480  100004000   -------    -----   0 12000000


This problem can be reproduced on the following environment:
The crash utility:
  crash-4.0-4.8
  + [PATCH] display information about "struct page" on SPARSEMEM.(2007/11/02)
System:
  CPU: i386
  MEM: 4GB or bigger
Kernel:
  i386, PAE, SPARSEMEM


Thanks
Ken'ichi Ohmichi

Signed-off-by: Ken'ichi Ohmichi <oomichi@xxxxxxxxxxxxxxxxx>
---
diff -rpuN crash-4.0-4.8.org/memory.c crash-4.0-4.8/memory.c
--- crash-4.0-4.8.org/memory.c	2007-10-31 11:49:16.000000000 +0900
+++ crash-4.0-4.8/memory.c	2007-11-13 15:48:31.000000000 +0900
@@ -4004,7 +4004,7 @@ dump_mem_map_SPARSEMEM(struct meminfo *m
pp = section_mem_map_addr(section);
 		pp = sparse_decode_mem_map(pp, section_nr);
-		phys = section_nr * PAGES_PER_SECTION() * PAGESIZE();
+		phys = (physaddr_t) section_nr * PAGES_PER_SECTION() * PAGESIZE();
 		section_size = PAGES_PER_SECTION();
for (i = 0; i < section_size; _

Nice catch -- queued for the next release.

Thanks,
  Dave



--
Crash-utility mailing list
Crash-utility@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/crash-utility

[Index of Archives]     [Fedora Development]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]

 

Powered by Linux