[PATCH v2 0/5] introduce kcompactd and stop compacting in kswapd

From: Vlastimil Babka
Date: Mon Feb 08 2016 - 08:38:37 EST


The previous RFC is here [1]. It didn't have a cover letter, so the description
and results are in the individual patches.

Changes since v1:
- do only sync compaction in kcompactd (Mel)
- only compact zones up to classzone_idx (Mel)
- move wakeup_kcompactd() call from patch 2 to patch 4 (Mel)
- Patch 3 is separate from Patch 2 for review purposes, although I would just
fold it in the end (Mel)
- Patch 5 is new
- retested on 4.5-rc1 with 5 repeats, which removed some counter-intuitive
results and added more confidence

[1] https://lkml.org/lkml/2016/1/26/558

Vlastimil Babka (5):
mm, kswapd: remove bogus check of balance_classzone_idx
mm, compaction: introduce kcompactd
mm, memory hotplug: small cleanup in online_pages()
mm, kswapd: replace kswapd compaction with waking up kcompactd
mm, compaction: adapt isolation_suitable flushing to kcompactd

include/linux/compaction.h | 16 +++
include/linux/mmzone.h | 6 +
include/linux/vm_event_item.h | 1 +
include/trace/events/compaction.h | 55 +++++++++
mm/compaction.c | 230 +++++++++++++++++++++++++++++++++++++-
mm/internal.h | 1 +
mm/memory_hotplug.c | 15 ++-
mm/page_alloc.c | 3 +
mm/vmscan.c | 147 ++++++++----------------
mm/vmstat.c | 1 +
10 files changed, 366 insertions(+), 109 deletions(-)

--
2.7.0