[PATCHv4 0/8] thp/khugepaged improvements and CoW semantics

From: Kirill A. Shutemov
Date: Thu Apr 16 2020 - 12:01:38 EST


The patchset adds khugepaged selftest (anon-THP only for now), expands
cases khugepaged can handle and switches anon-THP copy-on-write handling
to 4k.

Please review and consider applying.

v4:
- Rebase to v5.7-rc1;
- Minor adjustments based on feedback: comments/messages/whitespace
- Apply Reviewed/Acked/Tested-by;
v3:
- Fix handling compound pages in swap cache;
- Rework swaped vs. referenced check;
- Fix refcounting for compound pages;
- Drop Reviewed-by/Acked-by as patchset changed non-trivially;
- Typos;
v2:
- Fix race in compound page handling;
- Add one more test-case for compound page case;
- Rework LRU add cache draining;
- Typos;

Kirill A. Shutemov (8):
khugepaged: Add self test
khugepaged: Do not stop collapse if less than half PTEs are referenced
khugepaged: Drain all LRU caches before scanning pages
khugepaged: Drain LRU add pagevec after swapin
khugepaged: Allow to collapse a page shared across fork
khugepaged: Allow to collapse PTE-mapped compound pages
thp: Change CoW semantics for anon-THP
khugepaged: Introduce 'max_ptes_shared' tunable

Documentation/admin-guide/mm/transhuge.rst | 7 +
include/trace/events/huge_memory.h | 3 +-
mm/huge_memory.c | 250 +-----
mm/khugepaged.c | 220 +++--
tools/testing/selftests/vm/Makefile | 1 +
tools/testing/selftests/vm/khugepaged.c | 982 +++++++++++++++++++++
6 files changed, 1175 insertions(+), 288 deletions(-)
create mode 100644 tools/testing/selftests/vm/khugepaged.c

--
2.26.1