[Devel] [PATCH RHEL10 COMMIT] ms/selftests/rseq: Don't run tests with runner scripts outside of the scripts
Konstantin Khorenko
khorenko at virtuozzo.com
Mon Aug 24 19:32:23 MSK 2026
The commit is pushed to "branch-rh10-6.12.0-211.39.1.16.x.vz10-ovz" and will appear at git at bitbucket.org:openvz/vzkernel.git
after rh10-6.12.0-211.39.1.16.8.vz10
------>
commit b8ab001a0083d19b0fa5f9a7a0ea508fe19e51f4
Author: Mark Brown <broonie at kernel.org>
Date: Thu Apr 23 20:17:45 2026 +0100
ms/selftests/rseq: Don't run tests with runner scripts outside of the scripts
The rseq selftests include two runner scripts run_param_test.sh and
run_syscall_errors_test.sh which set up the environment for test binaries
and run them with various parameters. Currently we list these test binaries
in TEST_GEN_PROGS but this results in the kselftest framework running them
directly as well as via the runners, resulting in duplication and spurious
failures when the environment is not correctly set up (eg, if glibc tries
to use rseq).
Move the binaries the runners invoke to TEST_GEN_PROGS_EXTENDED, binaries
listed there are built but not run by the framework. The param_test
benchmarks are not moved since they are not run by run_param_test.sh.
Fixes: 830969e7821a ("selftests/rseq: Implement time slice extension test")
Signed-off-by: Mark Brown <broonie at kernel.org>
Signed-off-by: Thomas Gleixner <tglx at kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz at infradead.org>
Link: https://patch.msgid.link/20260423-selftests-rseq-use-runner-v1-1-e13a133754c1@kernel.org
Cc: stable at vger.kernel.org
(cherry picked from commit cb48828f06afa232cc330f0f4d6be101067810b3)
Conflict: slice_test does not exist in this tree, so it stays out of
TEST_GEN_PROGS. Everything else matches the upstream commit.
Why the standalone binary was failing here. The wrapper which sets the
environment up is already in the tree:
GLIBC_TUNABLES="${GLIBC_TUNABLES:-}:glibc.pthread.rseq=0" ./syscall_errors_test
glibc.pthread.rseq=0 tells glibc not to register rseq, so the thread
really is unregistered and every expectation of the test holds. No skip
inside the test is needed, it does its job for real.
What broke is that the binary was listed twice in effect: directly in
TEST_GEN_PROGS, and through the wrapper in TEST_PROGS. emit_tests in
lib.mk writes out both, and the shipped rpm showed exactly that:
rseq:param_test
rseq:param_test_compare_twice
rseq:param_test_mm_cid
rseq:param_test_mm_cid_compare_twice
rseq:syscall_errors_test <- run directly, no tunable, fails
rseq:run_param_test.sh
rseq:run_syscall_errors_test.sh <- run through the wrapper, passes
Our test runner walks that list entry by entry, so it invoked the bare
binary as well, and that one failed. With this commit the duplicate
entries are gone and only the wrappers remain.
https://virtuozzo.atlassian.net/browse/VSTOR-139675
Feature: fix selftests
Reported-by: Eva Kurchatova <eva.kurchatova at virtuozzo.com>
Signed-off-by: Konstantin Khorenko <khorenko at virtuozzo.com>
---
tools/testing/selftests/rseq/Makefile | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/tools/testing/selftests/rseq/Makefile b/tools/testing/selftests/rseq/Makefile
index 0d0a5fae5954..2cc472bac14e 100644
--- a/tools/testing/selftests/rseq/Makefile
+++ b/tools/testing/selftests/rseq/Makefile
@@ -14,12 +14,15 @@ LDLIBS += -lpthread -ldl
# still track changes to header files and depend on shared object.
OVERRIDE_TARGETS = 1
-TEST_GEN_PROGS = basic_test basic_percpu_ops_test basic_percpu_ops_mm_cid_test param_test \
- param_test_benchmark param_test_compare_twice param_test_mm_cid \
- param_test_mm_cid_benchmark param_test_mm_cid_compare_twice \
- syscall_errors_test
-
-TEST_GEN_PROGS_EXTENDED = librseq.so
+TEST_GEN_PROGS = basic_test basic_percpu_ops_test basic_percpu_ops_mm_cid_test \
+ param_test_benchmark param_test_mm_cid_benchmark
+
+TEST_GEN_PROGS_EXTENDED = librseq.so \
+ param_test \
+ param_test_compare_twice \
+ param_test_mm_cid \
+ param_test_mm_cid_compare_twice \
+ syscall_errors_test
TEST_PROGS = run_param_test.sh run_syscall_errors_test.sh
More information about the Devel
mailing list