[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