criu/test
Adrian Reber 5546c06a12 zdtm: Fix rseq01 test for kernel 7.0 rseq changes
Starting with Linux 7.0, the rseq feature size has grown to 33 bytes
and AT_RSEQ_ALIGN has increased to 64.  This causes sizeof(struct rseq)
from the uapi header to be 64 (33 bytes padded to aligned(32)), while
the actual registration size used by glibc (__rseq_size) is 33.

The rseq01 test was using sizeof(struct rseq) as the registration
size and a test-local __rseq_abi variable (with only 32-byte
alignment from the uapi header) as the rseq area.  Both are
wrong on kernel 7.0:

 - The kernel now checks alignment against __alignof__(struct rseq)
   which is 64 internally; the 32-byte-aligned test variable may
   not satisfy this.

 - sizeof(struct rseq) = 64 does not match the feature size of 33
   that glibc registered with, so re-registration with a different
   size fails.

Fix by:

 - Using __rseq_size (the feature size reported by glibc) as the
   registration size instead of sizeof(struct rseq).

 - Using the glibc-provided rseq area (at thread_pointer() +
   __rseq_offset) which is allocated with proper AT_RSEQ_ALIGN
   alignment, instead of a test-local variable.

Both fall back to the previous behavior when glibc rseq support
is not available.

This mirrors the glibc fix:

    https://sourceware.org/cgit/glibc/commit/?id=67f303b47dc584f204e3f2441b9832082415eebc

Assisted-by: Claude Code (claude-opus-4-6):claude-opus-4-6@default
Signed-off-by: Adrian Reber <areber@redhat.com>
2026-04-22 10:35:31 +02:00
..
compel Run 'make indent' on header files 2021-09-03 10:31:00 -07:00
cuda-checkpoint test: add get-state to mocked cuda-checkpoint tool 2025-03-21 12:40:31 -07:00
exhaustive make: remove checks for python 2 binary 2023-10-22 13:29:25 -07:00
inhfd Remove travis-ci leftovers 2025-11-02 07:48:23 -08:00
javaTests test/javaTests: update org.testng:testng (Maven) 2023-04-15 21:17:21 -07:00
jenkins compel: remove hardware breakpoint usage 2026-03-08 23:01:54 -07:00
libfault zdtm: add support for LD_PRELOAD tests 2024-09-11 16:02:11 -07:00
others test/bers: use size_t format specifiers for file counters 2026-04-16 10:41:44 -07:00
pki test: create new tls certificates 2021-09-03 10:31:00 -07:00
plugins zdtm: add inventory test plugins 2025-03-21 12:40:31 -07:00
zdtm zdtm: Fix rseq01 test for kernel 7.0 rseq changes 2026-04-22 10:35:31 +02:00
.gitignore zdtm: Add javaTests output to .gitignore 2021-09-03 10:31:00 -07:00
abrt.sh test/abrt: skip core dumps from the seccomp_filter test 2019-04-20 20:25:26 -07:00
crit-recode.py make: remove checks for python 2 binary 2023-10-22 13:29:25 -07:00
empty-netns-prep.sh test: don't use nsenter in tests 2017-05-19 09:17:20 +03:00
groups.desc zdtm.py: Generator of groups of tests 2015-12-08 14:54:41 +03:00
inhfd.desc zdtm.py: Add inhfd tests for --inherit-fd option 2015-10-19 12:42:01 +03:00
Makefile test/make: remove unused target 2024-09-11 16:02:11 -07:00
pycriu lib: use separate packages for pycriu and crit 2023-11-27 16:47:16 -08:00
umount2.c zdtm: add a program to umount a test root 2016-09-26 15:42:40 +03:00
zdtm.desc test: Get rid of live directory 2016-02-20 13:40:52 +03:00
zdtm.py zdtm: fix TOCTOU race creating criu.tree directory 2026-03-17 22:53:45 -07:00
zdtm_ct.c zdtm: Update netns purpose comment in zdtm_ct. 2023-10-22 13:29:25 -07:00
zdtm_mount_cgroups zdtm: use unique holder for cgroups 2022-04-28 17:53:52 -07:00
zdtm_umount_cgroups zdtm: use unique holder for cgroups 2022-04-28 17:53:52 -07:00