As David suggested, currently we don't have a high level test case to verify the behavior of rmap. This patch set introduce the verification on rmap by migration.
Patch 1 is a preparation to move ksm related operations into vm_util. Patch 2 is the new test case for rmap.
Currently it covers following four scenarios:
* anonymous page * shmem page * pagecache page * ksm page
v2->v3: * handle ksm error return in worker * rebase on current mm-unstable v1->v2: * do check on file opening in init_global_file_handlers() * factor out ksm_merge() and ksm_unmerge() instead of partial of it * align the return value of helpers: 0 on success, -errno on error * skip instead of assert if numa not available * check ksm sys file before continue * use private anonymous map instead of shared map * check pfn instead of content * retry migrate * fault in region for each process by FORCE_READ()
RFC->v1: * open file in function itself instead of pass fd as parameter * fault in the region by accessing it instead of print content
Wei Yang (2): selftests/mm: put general ksm operation into vm_util selftests/mm: assert rmap behave as expected
MAINTAINERS | 1 + tools/testing/selftests/mm/.gitignore | 1 + tools/testing/selftests/mm/Makefile | 3 + .../selftests/mm/ksm_functional_tests.c | 134 +----- tools/testing/selftests/mm/rmap.c | 433 ++++++++++++++++++ tools/testing/selftests/mm/run_vmtests.sh | 4 + tools/testing/selftests/mm/vm_util.c | 123 +++++ tools/testing/selftests/mm/vm_util.h | 7 + 8 files changed, 595 insertions(+), 111 deletions(-) create mode 100644 tools/testing/selftests/mm/rmap.c