[PATCH 04/10] Add debuginfo-related processing for VMCOREINFO/VMLINUX
HATAYAMA Daisuke
d.hatayama at jp.fujitsu.com
Thu Nov 8 04:48:28 EST 2012
Signed-off-by: HATAYAMA Daisuke <d.hatayama at jp.fujitsu.com>
---
makedumpfile.c | 21 ++++++++++++++++++++-
1 files changed, 20 insertions(+), 1 deletions(-)
diff --git a/makedumpfile.c b/makedumpfile.c
index 6513059..0d03716 100644
--- a/makedumpfile.c
+++ b/makedumpfile.c
@@ -914,6 +914,8 @@ get_structure_info(void)
OFFSET_INIT(page.flags, "page", "flags");
OFFSET_INIT(page._count, "page", "_count");
OFFSET_INIT(page.mapping, "page", "mapping");
+ OFFSET_INIT(page._mapcount, "page", "_mapcount");
+ OFFSET_INIT(page.private, "page", "private");
/*
* Some vmlinux(s) don't have debugging information about
@@ -1005,6 +1007,10 @@ get_structure_info(void)
ENUM_NUMBER_INIT(PG_lru, "PG_lru");
ENUM_NUMBER_INIT(PG_private, "PG_private");
ENUM_NUMBER_INIT(PG_swapcache, "PG_swapcache");
+ ENUM_NUMBER_INIT(PG_buddy, "PG_buddy");
+ ENUM_NUMBER_INIT(PG_slab, "PG_slab");
+
+ ENUM_TYPE_SIZE_INIT(pageflags, "pageflags");
TYPEDEF_SIZE_INIT(nodemask_t, "nodemask_t");
@@ -1355,6 +1361,7 @@ write_vmcoreinfo_data(void)
WRITE_STRUCTURE_SIZE("list_head", list_head);
WRITE_STRUCTURE_SIZE("node_memblk_s", node_memblk_s);
WRITE_STRUCTURE_SIZE("nodemask_t", nodemask_t);
+ WRITE_STRUCTURE_SIZE("pageflags", pageflags);
/*
* write the member offset of 1st kernel
@@ -1363,6 +1370,8 @@ write_vmcoreinfo_data(void)
WRITE_MEMBER_OFFSET("page._count", page._count);
WRITE_MEMBER_OFFSET("page.mapping", page.mapping);
WRITE_MEMBER_OFFSET("page.lru", page.lru);
+ WRITE_MEMBER_OFFSET("page._mapcount", page._mapcount);
+ WRITE_MEMBER_OFFSET("page.private", page.private);
WRITE_MEMBER_OFFSET("mem_section.section_mem_map",
mem_section.section_mem_map);
WRITE_MEMBER_OFFSET("pglist_data.node_zones", pglist_data.node_zones);
@@ -1407,6 +1416,10 @@ write_vmcoreinfo_data(void)
WRITE_NUMBER("PG_lru", PG_lru);
WRITE_NUMBER("PG_private", PG_private);
WRITE_NUMBER("PG_swapcache", PG_swapcache);
+ WRITE_NUMBER("PG_buddy", PG_buddy);
+ WRITE_NUMBER("PG_slab", PG_slab);
+
+ WRITE_NUMBER("PAGE_BUDDY_MAPCOUNT_VALUE", PAGE_BUDDY_MAPCOUNT_VALUE);
/*
* write the source file of 1st kernel
@@ -1654,11 +1667,14 @@ read_vmcoreinfo(void)
READ_STRUCTURE_SIZE("list_head", list_head);
READ_STRUCTURE_SIZE("node_memblk_s", node_memblk_s);
READ_STRUCTURE_SIZE("nodemask_t", nodemask_t);
+ READ_STRUCTURE_SIZE("pageflags", pageflags);
READ_MEMBER_OFFSET("page.flags", page.flags);
READ_MEMBER_OFFSET("page._count", page._count);
READ_MEMBER_OFFSET("page.mapping", page.mapping);
READ_MEMBER_OFFSET("page.lru", page.lru);
+ READ_MEMBER_OFFSET("page._mapcount", page._mapcount);
+ READ_MEMBER_OFFSET("page.private", page.private);
READ_MEMBER_OFFSET("mem_section.section_mem_map",
mem_section.section_mem_map);
READ_MEMBER_OFFSET("pglist_data.node_zones", pglist_data.node_zones);
@@ -1695,9 +1711,12 @@ read_vmcoreinfo(void)
READ_NUMBER("PG_lru", PG_lru);
READ_NUMBER("PG_private", PG_private);
READ_NUMBER("PG_swapcache", PG_swapcache);
-
+ READ_NUMBER("PG_slab", PG_slab);
+ READ_NUMBER("PG_buddy", PG_buddy);
READ_SRCFILE("pud_t", pud_t);
+ READ_NUMBER("PAGE_BUDDY_MAPCOUNT_VALUE", PAGE_BUDDY_MAPCOUNT_VALUE);
+
return TRUE;
}
More information about the kexec
mailing list