[Devel] [PATCH vz10] selftests/rseq: skip syscall_errors_test when libc owns the registration
Eva Kurchatova
eva.kurchatova at virtuozzo.com
Fri Aug 21 18:24:53 MSK 2026
The test requires the calling thread to be unregistered and expects
EFAULT when registering an invalid address. glibc >= 2.35 registers
rseq for every thread at startup, so the kernel rejects the second
registration with EINVAL before it ever touches the address.
https://virtuozzo.atlassian.net/browse/VSTOR-139675
Feature: fix selftests
Signed-off-by: Eva Kurchatova <eva.kurchatova at virtuozzo.com>
---
tools/testing/selftests/rseq/syscall_errors_test.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/tools/testing/selftests/rseq/syscall_errors_test.c b/tools/testing/selftests/rseq/syscall_errors_test.c
index a5d9e1f8a2dc..9e6bf6b1df96 100644
--- a/tools/testing/selftests/rseq/syscall_errors_test.c
+++ b/tools/testing/selftests/rseq/syscall_errors_test.c
@@ -34,6 +34,15 @@ int main(void)
goto error;
}
+ /*
+ * The expectations below only hold for a thread which is not
+ * registered, while glibc >= 2.35 registers every thread at startup.
+ */
+ if (rseq_current_cpu_raw() >= 0) {
+ fprintf(stderr, "rseq is already registered, skipping\n");
+ return 4;
+ }
+
/* The current thread is NOT registered. */
/* EINVAL */
--
2.55.0
More information about the Devel
mailing list