Hello HATAYAMA-san, On Fri, 29 Jun 2012 02:37:57 +0900 HATAYAMA Daisuke <d.hatayama at jp.fujitsu.com> wrote: > Sorry for late posting. I made RFC patch set for free page filtering > looking up mem_map array. Unlike exiting method looking up free page > list, this is done in constant space. > > I intend this patch set to be merged with Kumagai-san's cyclic patch > set, so I mark these with RFC. See TODO below. Also, I have yet to > test the logic for old kernels from v2.6.15 to v2.6.17. > > This new free page filtering needs the following values. > > - OFFSET(page._mapcount) > - OFFSET(page.private) > - SIZE(pageflags) > - NUMBER(PG_buddy) > - NUMBER(PG_slab) > - NUMBER(PAGE_BUDDY_MAPCOUNT_VALUE) > > Unfortunately, OFFSET(_mapcount) and OFFSET(private) fields of page > structure cannot be obtained from VMLINUX using the exiting library in > makedumpfile since two members are anonymous components of union > types. We need a new interface for them. > > To try to use this patch set, it's handy to pass manually editted > VMCOREINFO file via -i option. > > TODO > > 1. Add new values in VMCOREINFO on the upstream kernel. > > 2. Decide when to use this logic instead of the existing free list > logic. Option is 1) introduce new dump level or 2) use it > automatically if --cyclic is specified. This patch chooses 1) only > for RFC use. > > 3. Consider how to deal with old kernels on which we cannot add the > values in VMCOREINFO. Options is 1) to force users to use VMLINUX, > 2) to cover them full hard coding or 3) to give up support on full > range of kernel versions ever. Thank you always for your work. I will review your patches and measure executing time with v2 patch of cyclic processing. If your patches are effective, then I will consider TODO above. Please wait for a while. Thanks Atsushi Kumagai > --- > > HATAYAMA Daisuke (10): > Add page_is_buddy for old kernels > Add page_is_buddy for PG_buddy > Add page_is_buddy for recent kernels > Add excldue free pages by looking up mem_map array > Add command-line processing for free page filtering looking up mem_map array > Add page flag values as hardcoded values > Add debuginfo-related processing for VMCOREINFO/VMLINUX > Add new parameters for various tables > Add debuginfo interface for enum type size > Move page flags setup for old kernels after debuginfo initialization > > > dwarf_info.c | 29 +++++++++++---- > dwarf_info.h | 1 + > makedumpfile.c | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- > makedumpfile.h | 34 ++++++++++++++++- > 4 files changed, 158 insertions(+), 17 deletions(-) > > -- > > Thanks. > HATAYAMA, Daisuke