[RFC PATCH 00/10] Support free page filtering looking up mem_map array

Atsushi Kumagai kumagai-atsushi at mxc.nes.nec.co.jp
Fri Jun 29 02:23:37 EDT 2012


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



More information about the kexec mailing list