The first patch in this series fixes the incorrect accounting of KSM
counters such as ksm_merging_pages, ksm_rmap_items, and the global
ksm_zero_pages during fork.
The following patch added a selftest to verify the ksm_merging_pages
counter was updated correctly during fork.
Test Results
============
Without the first patch
-----------------------
# [RUN] test_fork_ksm_merging_page_count
not ok 10 ksm_merging_page in child: 32
With the first patch
--------------------
# [RUN] test_fork_ksm_merging_page_count
ok 10 ksm_merging_pages is not inherited after fork
Changes:
V2 -> v3:
- Added Reviewed-by and Acked-by tags
- Added cleanup on exit in ksm_merging_pages test.
- Dropped test_fork_global_ksm_zero_pages_count because it can give false
failures if multiple processes attempt KSM zero-page merging and unmerging
during test execution.
v2: https://lore.kernel.org/all/cover.1757946863.git.donettom@linux.ibm.com/#t
v1: https://lore.kernel.org/all/2e662107e01417bf9af23bc7f52863cd538419be.1756211338.git.donettom@linux.ibm.com/
Donet Tom (2):
mm/ksm: Fix incorrect KSM counter handling in mm_struct during fork
selftests/mm: Added fork inheritance test for ksm_merging_pages
counter
include/linux/ksm.h | 8 +++-
.../selftests/mm/ksm_functional_tests.c | 43 ++++++++++++++++++-
2 files changed, 49 insertions(+), 2 deletions(-)
--
2.51.0