[Crash-utility] [PATCH] Fix a typo for getting the offset "page.index" (Re: crash version 4.0-4.9 is availlable)

Ken'ichi Ohmichi oomichi at mxs.nes.nec.co.jp
Wed Nov 21 02:46:21 UTC 2007


Hi Dave,

Dave Anderson wrote:
> 
> - Fix for the "kmem -p" command in kernels configured with
>   CONFIG_SPARSEMEM, i.e., not CONFIG_SPARSEMEM_EXTREME.  Without
>   the patch, the page structure address for each physical page
>   was erroneous.  (oomichi at mxs.nes.nec.co.jp)

> - Fix for "kmem -p" on i386 CONFIG_SPARSEMEM kernels with greater than
>   4GB of memory.  Without the patch, the physical address value wraps
>   back to zero after physical page ffff0000.
>   (oomichi at mxs.nes.nec.co.jp)

Thank you for merging my patches.

I tested the latest crash utility (crash-4.0-4.9), and I found a problem
that "kmem -p" fails like the following:

  crash> kmem -p

  kmem: invalid structure member offset: page_index
        FILE: memory.c  LINE: 4116  FUNCTION: dump_mem_map_SPARSEMEM()

  [/usr/bin/crash] error trace: 80a0a75 => 80a3020 => 80a1e25 => 8136ce7
    PAGE    PHYSICAL   MAPPING    INDEX CNT FLAGS
  /usr/bin/nm: /usr/bin/crash: no symbols
  /usr/bin/nm: /usr/bin/crash: no symbols
  /usr/bin/nm: /usr/bin/crash: no symbols
  /usr/bin/nm: /usr/bin/crash: no symbols

  WARNING: Because this kernel was compiled with gcc version 4.1.2, certain
           commands or command options may fail unless crash is invoked with
           the  "--readnow" command line option.

  kmem: invalid structure member offset: page_index
        FILE: memory.c  LINE: 4116  FUNCTION: dump_mem_map_SPARSEMEM()

  crash>

To solve it, this patch fixes a typo for getting the offset "page.index".


Thanks
Ken'ichi Ohmichi

Signed-off-by: Ken'ichi Ohmichi <oomichi at mxs.nes.nec.co.jp>
---
diff -rpuN crash-4.0-4.9.org/memory.c crash-4.0-4.9/memory.c
--- crash-4.0-4.9.org/memory.c	2007-11-21 10:48:38.000000000 +0900
+++ crash-4.0-4.9/memory.c	2007-11-21 11:17:15.000000000 +0900
@@ -286,7 +286,7 @@ vm_init(void)
 			STRUCT_SIZE("atomic_t") + sizeof(ulong);
         MEMBER_OFFSET_INIT(page_index, "page", "index");
 	if (INVALID_MEMBER(page_index))
-		ANON_MEMBER_OFFSET_INIT(page_mapping, "page", "index");
+		ANON_MEMBER_OFFSET_INIT(page_index, "page", "index");
         MEMBER_OFFSET_INIT(page_buffers, "page", "buffers");
 	MEMBER_OFFSET_INIT(page_lru, "page", "lru");
 	MEMBER_OFFSET_INIT(page_pte, "page", "pte");
_





More information about the Crash-utility mailing list