Hi Dave, Dave Anderson wrote: > > Dave Anderson wrote: >> >> Ken'ichi Ohmichi wrote: >> >> >>> >>> Hi Dave, >>> >>> >>> >>> This patch fixes the problem that the crash utility cannot display >>> >>> "struct page" information about SPARSEMEM (not SPARSEMEM_EXTREME) >>> >>> properly. >>> >>> >>> >>> The symbol mem_section is defined as the pointer array in >>> >>> SPARSEMEM_EXTREME. >>> >>> On the other hand, SPARSEMEM's one is defined as the array of structure >>> >>> mem_section like the following: >>> >>> >>> >>> linux-2.6.23/mm/sparse.c:18L >>> >>> #ifdef CONFIG_SPARSEMEM_EXTREME >>> >>> struct mem_section *mem_section[NR_SECTION_ROOTS] >>> >>> ____cacheline_internodealigned_in_smp; >>> >>> #else >>> >>> struct mem_section mem_section[NR_SECTION_ROOTS][SECTIONS_PER_ROOT] >>> >>> ____cacheline_internodealigned_in_smp; >>> >>> #endif >>> >>> EXPORT_SYMBOL(mem_section); >>> >>> >>> >>> The crash utility considers SPARSEMEM's one to be the pointer array, >>> >>> but it is wrong. This patch fixes it. >>> >>> >> >> >> >> Interesting, I've never seen this problem before on any >> >> SPARSEMEM kernels. But perhaps the original contributor >> >> of this patch, and myself, have never run a kernel configured >> >> with CONFIG_SPARSEMEM (i.e., only with CONFIG_SPARSEMEM_EXTREME)? >> >> (I don't have any dumpfiles to check) > > > > Hi Ken'ichi, > > > > I take that back -- I do have several x86_64 RHEL5 dumpfiles, and > > as I suspected, all of them are CONFIG_SPARSEMEM_EXTREME. So it > > appears that the CONFIG_SPARSEMEM configuration was never tested? I have tested this patch on some i386 SPARSEMEM kernels. non_EXTREME is represented as SPARSEMEM_STATIC on linux source code, and SPARSEMEM_STATIC is effective on i386 and mips only: 2.6.18-53.el5/arch/i386/Kconfig:616L config ARCH_SPARSEMEM_ENABLE def_bool y depends on (NUMA || (X86_PC && EXPERIMENTAL)) select SPARSEMEM_STATIC 2.6.18-53.el5/arch/mips/Kconfig:1695L config ARCH_SPARSEMEM_ENABLE bool select SPARSEMEM_STATIC > > Also, when I was looking at your patch without the full context, > > I did not see that the code already has an if-else for the two > > configurations, and that you are only changing the CONFIG_SPARSEMEM > > section. Sorry for the confusion... > > > > I appreciate your fixing this -- it's queued for the next release. Thank you for applying :-) Thanks Ken'ichi Ohmichi -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility