gup_test.c currently serves two distinct purposes: microbenchmarking (GUP_FAST_BENCHMARK, PIN_FAST_BENCHMARK, PIN_LONGTERM_BENCHMARK) and functional correctness testing (GUP_BASIC_TEST, PIN_BASIC_TEST, DUMP_USER_PAGES_TEST). Mixing these in a single binary means functional tests cannot be run or reported individually, and run_vmtests.sh has to invoke the binary multiple times with different flag combinations to cover all configurations.
Patch 1 adds tools/mm/gup_bench, a standalone benchmark tool that does not depend on the kselftest infrastructure and can be used independently of the selftest suite. Patch 2 rewrites gup_test.c using kselftest_harness to produce clean TAP output with per-variant test reporting, and simplifies run_vmtests.sh to a single unconditional invocation of ./gup_test. --- These patches apply on top of mm/mm-new. Sarthak Sharma (2): tools/mm: add a standalone GUP microbenchmark selftests/mm: rewrite gup_test as a standalone harness-based selftest MAINTAINERS | 1 + tools/mm/.gitignore | 2 + tools/mm/Makefile | 6 +- tools/mm/gup_bench.c | 491 ++++++++++++++++++++++ tools/testing/selftests/mm/gup_test.c | 404 ++++++++---------- tools/testing/selftests/mm/run_vmtests.sh | 37 +- 6 files changed, 679 insertions(+), 262 deletions(-) create mode 100644 tools/mm/gup_bench.c base-commit: 2c3f468717231305523ddcd94d91c0d5e4a72419 -- 2.39.5

