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
v3->v4: * rebase on mm-new(dd1510cefdfe) * "assert" -> "test that" in subject 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: test that rmap behave as expected
MAINTAINERS | 1 + tools/testing/selftests/mm/.gitignore | 1 + tools/testing/selftests/mm/Makefile | 3 + .../selftests/mm/ksm_functional_tests.c | 142 +----- 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, 596 insertions(+), 118 deletions(-) create mode 100644 tools/testing/selftests/mm/rmap.c