On Mon, 16 May 2022 00:55:38 -0700 Suren Baghdasaryan surenb@google.com wrote:
Introduce process_mrelease syscall sanity tests which include tests which expect to fail:
- process_mrelease with invalid pidfd and flags inputs
- process_mrelease on a live process with no pending signals
and valid process_mrelease usage which is expected to succeed. Because process_mrelease has to be used against a process with a pending SIGKILL, it's possible that the process exits before process_mrelease gets called. In such cases we retry the test with a victim that allocates twice more memory up to 1GB. This would require the victim process to spend more time during exit and process_mrelease has a better chance of catching the process before it exits and succeeding.
On success the test reports the amount of memory the child had to allocate for reaping to succeed. Sample output: Success reaping a child with 1MB of memory allocations
On failure the test reports the failure. Sample outputs: All process_mrelease attempts failed! process_mrelease: Invalid argument
...
--- a/tools/testing/selftests/vm/run_vmtests.sh +++ b/tools/testing/selftests/vm/run_vmtests.sh @@ -287,6 +287,22 @@ else echo "[PASS]" fi +echo "---------------------" +echo "running mrelease_test" +echo "---------------------" +./mrelease_test +ret_val=$?
+if [ $ret_val -eq 0 ]; then
- echo "[PASS]"
+elif [ $ret_val -eq $ksft_skip ]; then
echo "[SKIP]"
exitcode=$ksft_skip
+else
- echo "[FAIL]"
- exitcode=1
+fi
echo "-------------------" echo "running mremap_test" echo "-------------------"
Can you please redo this against git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm branch mm-stable or mm-unstable. Or against linux-next?
This script now has a helper function run_test which I think can be used here.