All of lore.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.