[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220117203925.12164-1-mathieu.desnoyers@efficios.com>
Date: Mon, 17 Jan 2022 15:39:20 -0500
From: Mathieu Desnoyers <mathieu.desnoyers@...icios.com>
To: Peter Zijlstra <peterz@...radead.org>
Cc: linux-kernel@...r.kernel.org, Thomas Gleixner <tglx@...utronix.de>,
"Paul E . McKenney" <paulmck@...nel.org>,
Boqun Feng <boqun.feng@...il.com>,
"H . Peter Anvin" <hpa@...or.com>, Paul Turner <pjt@...gle.com>,
linux-api@...r.kernel.org,
Christian Brauner <christian.brauner@...ntu.com>,
Florian Weimer <fw@...eb.enyo.de>, David.Laight@...LAB.COM,
carlos@...hat.com,
Mathieu Desnoyers <mathieu.desnoyers@...icios.com>
Subject: [RFC PATCH 0/5] RSEQ selftests uplift for glibc-2.35 compatibility
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
Powered by blists - more mailing lists