[PATCH v2 0/2] aarch64: Support locking GCS
Yury Khrustalev
yury.khrustalev@arm.com
Thu Feb 5 13:20:44 GMT 2026
Lock GCS status by default. Also lock all features (operations on GCS)
by default.
Allow to opt-out of locking for selected features via new tunable
glibc.cpu.aarch64_gcs_lock (bits that are not set in this tunable's
value will not be locked).
See relevant discussion in [1]. It explains that we have to allow
opting out of all features (operations in GCS) including "status"
(i.e. enable / disable GCS).
Feedback on the implementation and user experience welcome.
---
Passes regression on aarch64. GCS tests checked on Arm Fixed
Virtual Platform (FVP) model [2]. OK for trunk?
Base commit: c4a81e882e
[1]: https://inbox.sourceware.org/libc-help/aXdRdmU95P4tbuES@arm.com/
[2]: https://inbox.sourceware.org/libc-help/aIc3ElNTSQrelCK9@arm.com/
---
Yury Khrustalev (2):
aarch64: Lock GCS status at startup
aarch64: Tests for locking GCS
manual/tunables.texi | 50 +++++--
sysdeps/aarch64/dl-gcs.c | 2 +-
sysdeps/aarch64/dl-start.S | 12 ++
sysdeps/aarch64/dl-tunables.list | 6 +
sysdeps/aarch64/rtld-global-offsets.sym | 5 +-
sysdeps/unix/sysv/linux/aarch64/Makefile | 23 +++
.../unix/sysv/linux/aarch64/cpu-features.c | 7 +-
.../unix/sysv/linux/aarch64/dl-procruntime.c | 16 +++
sysdeps/unix/sysv/linux/aarch64/libc-start.h | 16 ++-
.../unix/sysv/linux/aarch64/tst-gcs-execv.c | 60 ++++++++
.../unix/sysv/linux/aarch64/tst-gcs-fork.c | 79 ++++++++++
.../sysv/linux/aarch64/tst-gcs-lock-ptrace.c | 135 ++++++++++++++++++
.../sysv/linux/aarch64/tst-gcs-lock-static.c | 1 +
.../unix/sysv/linux/aarch64/tst-gcs-lock.c | 63 ++++++++
.../linux/aarch64/tst-gcs-unlock-static.c | 2 +
.../unix/sysv/linux/aarch64/tst-gcs-unlock.c | 2 +
16 files changed, 460 insertions(+), 19 deletions(-)
create mode 100644 sysdeps/unix/sysv/linux/aarch64/tst-gcs-execv.c
create mode 100644 sysdeps/unix/sysv/linux/aarch64/tst-gcs-fork.c
create mode 100644 sysdeps/unix/sysv/linux/aarch64/tst-gcs-lock-ptrace.c
create mode 100644 sysdeps/unix/sysv/linux/aarch64/tst-gcs-lock-static.c
create mode 100644 sysdeps/unix/sysv/linux/aarch64/tst-gcs-lock.c
create mode 100644 sysdeps/unix/sysv/linux/aarch64/tst-gcs-unlock-static.c
create mode 100644 sysdeps/unix/sysv/linux/aarch64/tst-gcs-unlock.c
--
2.47.3
More information about the Libc-alpha
mailing list