>Now we define MAX_PHYSMEM_BITS and SECTION_SIZE_BITS as >macros. But for ARM32 platform, different venders may >define different SECTION_SIZE_BITS. for example: > > 1 arch/arm/mach-clps711x/include/mach/memory.h > #define SECTION_SIZE_BITS 24 > 2 arch/arm/mach-exynos/include/mach/memory.h > #define SECTION_SIZE_BITS 28 > 3 arch/arm/mach-sa1100/include/mach/memory.h > #define SECTION_SIZE_BITS 27 > >And if Large Physical Address extension is enabled, >MAX_PHYSMEM_BITS may also be changed. > >"So makedumpfile can't get an appropriate values of the two >macros since the values are variable even if the architecture >and the kernel version are fixed (at least for arm)" -- >Atsushi Kumagai > >This patch makes makedumpfile get these two values from >vmcore info, which makes the makedumpfile more compatible. > >Signed-off-by: Liu Hua <sdu.liu at huawei.com> Good, I'll merge this into v1.5.7. Thanks for your work. Atsushi Kumagai >--- > makedumpfile.c | 17 +++++++++++++++++ > makedumpfile.h | 2 ++ > 2 files changed, 19 insertions(+) > >diff --git a/makedumpfile.c b/makedumpfile.c >index 8dc1181..edfe30b 100644 >--- a/makedumpfile.c >+++ b/makedumpfile.c >@@ -2111,6 +2111,8 @@ read_vmcoreinfo(void) > READ_NUMBER("PG_slab", PG_slab); > READ_NUMBER("PG_buddy", PG_buddy); > READ_NUMBER("PG_hwpoison", PG_hwpoison); >+ READ_NUMBER("SECTION_SIZE_BITS", SECTION_SIZE_BITS); >+ READ_NUMBER("MAX_PHYSMEM_BITS", MAX_PHYSMEM_BITS); > > READ_SRCFILE("pud_t", pud_t); > >@@ -2996,6 +2998,18 @@ initialize_bitmap_memory(void) > } > > int >+calibrate_machdep_info(void) >+{ >+ if (NUMBER(MAX_PHYSMEM_BITS) > 0) >+ info->max_physmem_bits = NUMBER(MAX_PHYSMEM_BITS); >+ >+ if (NUMBER(SECTION_SIZE_BITS) > 0) >+ info->section_size_bits = NUMBER(SECTION_SIZE_BITS); >+ >+ return TRUE; >+} >+ >+int > initial(void) > { > off_t offset; >@@ -3212,6 +3226,9 @@ out: > if (debug_info && !get_machdep_info()) > return FALSE; > >+ if (debug_info && !calibrate_machdep_info()) >+ return FALSE; >+ > if (is_xen_memory() && !get_dom0_mapnr()) > return FALSE; > >diff --git a/makedumpfile.h b/makedumpfile.h >index eb03688..7acb23a 100644 >--- a/makedumpfile.h >+++ b/makedumpfile.h >@@ -1434,6 +1434,8 @@ struct number_table { > long PG_hwpoison; > > long PAGE_BUDDY_MAPCOUNT_VALUE; >+ long SECTION_SIZE_BITS; >+ long MAX_PHYSMEM_BITS; > }; > > struct srcfile_table { >-- >1.9.0