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 two patches add selftests to verify that the
ksm_merging_pages counter and the global ksm_zero_pages counter are
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
# [RUN] test_fork_global_ksm_zero_pages_count
not ok 11 Incorrect global ksm zero page counter after fork
With the first patch
--------------------
# [RUN] test_fork_ksm_merging_page_count
ok 10 ksm_merging_pages is not inherited after fork
# [RUN] test_fork_global_ksm_zero_pages_count
ok 11 Global ksm zero page count is correct after fork
Changes:
v1 -> v2 :
- Rebased to mm-new branch
- Fixed incorrect global ksm_zero_pages counter issue during fork and
added a selftest to verify it.
v1: https://lore.kernel.org/all/2e662107e01417bf9af23bc7f52863cd538419be.1756211338.git.donettom@linux.ibm.com/
Donet Tom (3):
mm/ksm: Fix incorrect KSM counter handling in mm_struct during fork
selftests/mm: Added fork inheritance test for ksm_merging_pages
counter
selftests/mm: Added fork test to verify global ksm_zero_pages counter
behavior
include/linux/ksm.h | 8 +-
.../selftests/mm/ksm_functional_tests.c | 114 +++++++++++++++++-
2 files changed, 120 insertions(+), 2 deletions(-)
--
2.51.0