The following error comes up because, in v4.6, _count, a member of struct
page, has been renamed to _refcount. (commit 0139aa7b7fa1:"mm: rename
_count, field of the struct page, to _refcount)

This patch addresses this problem.

crash> kmem ffff80000000000000
kmem: input string too large: "ffff80000000000000" (18 vs 16)
crash> kmem ffff800000000000
ZONE  NAME        SIZE    FREE      MEM_MAP       START_PADDR  START_MAPNR
  0   DMA         9216    2179  ffff7fe000000000    80000000        0
AREA    SIZE  FREE_AREA_STRUCT
  3     512k  ffff000008cd7a38
ffff7fe000000000  (ffff800000000000 is 1st of 8 pages)

kmem: invalid structure member offset: page_count
      FILE: memory.c  LINE: 5503  FUNCTION: dump_mem_map_SPARSEMEM()

Signed-off-by: AKASHI Takahiro <takahiro.aka...@linaro.org>
---
 memory.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/memory.c b/memory.c
index 216038d..6ad0816 100644
--- a/memory.c
+++ b/memory.c
@@ -432,8 +432,12 @@ vm_init(void)
        MEMBER_OFFSET_INIT(page_count, "page", "count");
        if (INVALID_MEMBER(page_count)) {
                MEMBER_OFFSET_INIT(page_count, "page", "_count");
-               if (INVALID_MEMBER(page_count))
+               if (INVALID_MEMBER(page_count)) {
                        ANON_MEMBER_OFFSET_INIT(page_count, "page", "_count");
+                       if (INVALID_MEMBER(page_count))
+                               ANON_MEMBER_OFFSET_INIT(page_count, "page",
+                                                               "_refcount");
+               }
        }
        MEMBER_OFFSET_INIT(page_flags, "page", "flags");
        MEMBER_SIZE_INIT(page_flags, "page", "flags");
-- 
2.8.1

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

Reply via email to