public inbox for kexec@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH v2 00/10] Support free page filtering looking up mem_map array
@ 2012-11-16  5:01 HATAYAMA Daisuke
  2012-11-16  5:01 ` [PATCH v2 01/10] Move page flags setup for old kernels after debuginfo initialization HATAYAMA Daisuke
                   ` (10 more replies)
  0 siblings, 11 replies; 20+ messages in thread
From: HATAYAMA Daisuke @ 2012-11-16  5:01 UTC (permalink / raw)
  To: kumagai-atsushi; +Cc: kexec

This patch set implements filtering free pages looking up mem_map
array instead of free lists. This is compatible for cyclic mode
because looking up mem_map can be divided into cycles. On the other
hand, dividing free pages contaiend in free lists is difficult since
they are not sorted in physical-address order.

* Changes

v1 => v2:
  - If debuginfo is not available enough, switch logic to freelist
    one. On v1, free page filtering was disabled in this case.
  - Add hard-coded values in wider kernel versions.
  - If some free pages possibly fail to be filtered, try to correct
    cyclic buffer size appropreately.
  - Correct the comment explaining the cyclic buffer overrun, which
    was broken on v1.

RFC => v1:
  - Logic is automatically selected at runtime according to the
    current mode. In cyclic mode, mem_map array logic is used. In
    non-cyclic mode, free list logic is used.
  - The RFC version is:
    http://lists.infradead.org/pipermail/kexec/2012-June/006441.html

* TODO

Add the following values in VMCOREINFO on the upstream kernel. These
are used in the mem_map logic.

  - OFFSET(page._mapcount)
  - OFFSET(page.private)
  - SIZE(pageflags)
  - NUMBER(PG_buddy)
  - NUMBER(PG_slab)
  - NUMBER(PAGE_BUDDY_MAPCOUNT_VALUE)

* Test

I tested this patch set on the following kernel versions.

- 3.4
- 3.1
- 2.6.38
- 2.6.32
- 2.6.18

On the test, I manually specified VMCOREINFO while extending it with
the following values according to the kernel versions.

- 3.1, 3.4
NUMBER(PG_slab)=7
SIZE(pageflags)=4
OFFSET(page._mapcount)=24
OFFSET(page.private)=48
NUMBER(PAGE_BUDDY_MAPCOUNT_VALUE)=-128

- 2.6.38
SIZE(pageflags)=4
OFFSET(page._mapcount)=12
OFFSET(page.private)=16
NUMBER(PG_slab)=7
NUMBER(PAGE_BUDDY_MAPCOUNT_VALUE)=-2

- 2.6.32
NUMBER(PG_slab)=7
NUMBER(PG_buddy)=19
OFFSET(page._mapcount)=12
OFFSET(page.private)=16
SIZE(pageflags)=4

- 2.6.18
NUMBER(PG_slab)=7
NUMBER(PG_buddy)=19
OFFSET(page._mapcount)=12
OFFSET(page.private)=16

---

HATAYAMA Daisuke (10):
      Warn cyclic buffer overrun and correct it if possible
      Add page_is_buddy for old kernels
      Add page_is_buddy for PG_buddy
      Add page_is_buddy for recent kernels
      Exclude free pages by looking up mem_map array
      Add hardcoded page flag values
      Add debuginfo-related processing for VMCOREINFO/VMLINUX
      Add new parameters to various tables
      Add debuginfo interface for enum type size
      Move page flags setup for old kernels after debuginfo initialization


 dwarf_info.c   |   18 ++++
 dwarf_info.h   |    1 
 makedumpfile.c |  226 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 makedumpfile.h |   35 ++++++++-
 4 files changed, 269 insertions(+), 11 deletions(-)

-- 

Thanks.
HATAYAMA, Daisuke

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2013-09-12  6:26 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-16  5:01 [PATCH v2 00/10] Support free page filtering looking up mem_map array HATAYAMA Daisuke
2012-11-16  5:01 ` [PATCH v2 01/10] Move page flags setup for old kernels after debuginfo initialization HATAYAMA Daisuke
2012-11-16  5:01 ` [PATCH v2 02/10] Add debuginfo interface for enum type size HATAYAMA Daisuke
2012-11-16  5:01 ` [PATCH v2 03/10] Add new parameters to various tables HATAYAMA Daisuke
2012-11-16  5:01 ` [PATCH v2 04/10] Add debuginfo-related processing for VMCOREINFO/VMLINUX HATAYAMA Daisuke
2012-11-16  5:01 ` [PATCH v2 05/10] Add hardcoded page flag values HATAYAMA Daisuke
2012-11-16  5:02 ` [PATCH v2 06/10] Exclude free pages by looking up mem_map array HATAYAMA Daisuke
2012-11-16  5:02 ` [PATCH v2 07/10] Add page_is_buddy for recent kernels HATAYAMA Daisuke
2012-11-16  5:02 ` [PATCH v2 08/10] Add page_is_buddy for PG_buddy HATAYAMA Daisuke
2012-11-27  6:00   ` Atsushi Kumagai
2012-11-27  7:30     ` Atsushi Kumagai
2012-11-27  8:53     ` Hatayama, Daisuke
2012-11-28  7:42       ` Atsushi Kumagai
2012-11-16  5:02 ` [PATCH v2 09/10] Add page_is_buddy for old kernels HATAYAMA Daisuke
2012-11-16  5:02 ` [PATCH v2 10/10] Warn cyclic buffer overrun and correct it if possible HATAYAMA Daisuke
2013-09-11  7:51   ` Atsushi Kumagai
2013-09-11  8:35     ` HATAYAMA Daisuke
2013-09-12  2:00       ` HATAYAMA Daisuke
2013-09-12  6:17         ` Atsushi Kumagai
2012-11-16  7:05 ` [PATCH v2 00/10] Support free page filtering looking up mem_map array Atsushi Kumagai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox