selftests/mm: add new selftests for KSM
This adds three new tests to the selftests for KSM. These tests use the
new prctl API's to enable and disable KSM.
1) add new prctl flags to prctl header file in tools dir
This adds the new prctl flags to the include file prct.h in the
tools directory. This makes sure they are available for testing.
2) add KSM prctl merge test
This adds the -t option to the ksm_tests program. The -t flag
allows to specify if it should use madvise or prctl ksm merging.
3) add KSM get merge type test
This adds the -G flag to the ksm_tests program to query the KSM
status with prctl after KSM has been enabled with prctl.
4) add KSM fork test
Add fork test to verify that the MMF_VM_MERGE_ANY flag is inherited
by the child process.
5) add two functions for debugging merge outcome
This adds two functions to report the metrics in /proc/self/ksm_stat
and /sys/kernel/debug/mm/ksm.
The debugging can be enabled with the following command line:
make -C tools/testing/selftests TARGETS="mm" --keep-going \
EXTRA_CFLAGS=-DDEBUG=1
[akpm@linux-foundation.org: fix Makefile]
Link: https://lkml.kernel.org/r/20230224044000.3084046-4-shr@devkernel.io
Link: https://lkml.kernel.org/r/20230310182851.2579138-4-shr@devkernel.io
Signed-off-by: Stefan Roesch <shr@devkernel.io>
Cc: Bagas Sanjaya <bagasdotme@gmail.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Rik van Riel <riel@surriel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>