[RFC PATCH 00/10] Support free page filtering looking up mem_map array
HATAYAMA Daisuke
d.hatayama at jp.fujitsu.com
Thu Jun 28 13:37:57 EDT 2012
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.
---
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