Re: [RFC PATCH 0/5] RSEQ selftests uplift for glibc-2.35 compatibility
flat view
From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Date: 2022-01-17 20:55:11
Also in:
linux-kselftest, lkml
[ I should really have CC'd the selftests maintainer and mailing list. Adding them in Cc to patch 0/5 to bring this series to their attention. ] ----- On Jan 17, 2022, at 3:39 PM, Mathieu Desnoyers mathieu.desnoyers@efficios.com wrote:
glibc-2.35 will be released on 2022-02-01. It introduces a user-space ABI based on the thread pointer to access a reserved area of the TCB. The rseq selftests originally expected the rseq thread data to sit in a __rseq_abi TLS variable. Considering that the rseq ABI only allows a single rseq registration per thread, both cannot actively coexist in a process. Adapt the selftests librseq implementation to become compatible with glibc-2.35. Keep a fallback implementation based on TLS available when an older glibc is detected. Feedback is welcome, Thanks, Mathieu Mathieu Desnoyers (5): selftests/rseq: Remove useless assignment to cpu variable selftests/rseq: Remove volatile from __rseq_abi selftests/rseq: Introduce rseq_get_abi() helper selftests/rseq: Introduce thread pointer getters selftests/rseq: Uplift rseq selftests for compatibility with glibc-2.35 tools/testing/selftests/rseq/Makefile | 2 +- tools/testing/selftests/rseq/param_test.c | 4 +- tools/testing/selftests/rseq/rseq-arm.h | 32 ++-- tools/testing/selftests/rseq/rseq-arm64.h | 32 ++-- .../rseq/rseq-generic-thread-pointer.h | 25 +++ tools/testing/selftests/rseq/rseq-mips.h | 32 ++-- .../selftests/rseq/rseq-ppc-thread-pointer.h | 30 ++++ tools/testing/selftests/rseq/rseq-ppc.h | 32 ++-- tools/testing/selftests/rseq/rseq-s390.h | 24 +-- .../selftests/rseq/rseq-thread-pointer.h | 19 +++ .../selftests/rseq/rseq-x86-thread-pointer.h | 40 +++++ tools/testing/selftests/rseq/rseq-x86.h | 30 ++-- tools/testing/selftests/rseq/rseq.c | 161 +++++++++--------- tools/testing/selftests/rseq/rseq.h | 24 ++- 14 files changed, 302 insertions(+), 185 deletions(-) create mode 100644 tools/testing/selftests/rseq/rseq-generic-thread-pointer.h create mode 100644 tools/testing/selftests/rseq/rseq-ppc-thread-pointer.h create mode 100644 tools/testing/selftests/rseq/rseq-thread-pointer.h create mode 100644 tools/testing/selftests/rseq/rseq-x86-thread-pointer.h -- 2.17.1
-- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com