[PATCH v5 0/3] aarch64: clear SME ZA state for clone{,3} syscalls
Yury Khrustalev
yury.khrustalev@arm.com
Mon Sep 29 10:21:37 GMT 2025
Passes tests on AArch64, OK for trunk?
SME part was tested on Arm Fixed Virtual Platform (FVP) model using the
process outloned in [1].
[1]: https://inbox.sourceware.org/libc-help/aIc3ElNTSQrelCK9@arm.com/
Base-commit: e7eadbb29f
Changes in v5:
- Rebased on master.
- Added tests for fork and vfork.
- Added assembly macro for calling __libc_arm_za_disable().
- Added call to __libc_arm_za_disable() in vfork.
- Added INLINE_CLONE_SYSCALL() fpr AArch64 to call __libc_arm_za_disable()
during inlince clone() call.
Changes in v4:
- Rebased on master.
- Updated commit message to explain the background behind this change.
- Added a test for SME state in signal handlers.
- v3: https://patchwork.sourceware.org/project/glibc/list/?series=48789
Changes in v3:
- Rebased on master.
- Added documentation,
- v2: https://patchwork.sourceware.org/project/glibc/list/?series=48383
Changes in v2:
- Rebased on recent master.
- v1: https://patchwork.sourceware.org/project/glibc/list/?series=47709
---
Yury Khrustalev (3):
aarch64: define macro for calling __libc_arm_za_disable
aarch64: clear ZA state of SME before clone and clone3 syscalls
aarch64: tests for SME
sysdeps/aarch64/Makefile | 10 ++
sysdeps/aarch64/__longjmp.S | 12 +--
sysdeps/aarch64/setjmp.S | 12 +--
sysdeps/aarch64/tst-sme-clone.c | 53 ++++++++++
sysdeps/aarch64/tst-sme-clone3.c | 104 +++++++++++++++++++
sysdeps/aarch64/tst-sme-fork.c | 43 ++++++++
sysdeps/aarch64/tst-sme-helper.h | 7 +-
sysdeps/aarch64/tst-sme-jmp.c | 7 +-
sysdeps/aarch64/tst-sme-signal.c | 98 +++++++++++++++++
sysdeps/aarch64/tst-sme-skeleton.c | 101 ++++++++++++++++++
sysdeps/aarch64/tst-sme-vfork.c | 43 ++++++++
sysdeps/aarch64/tst-sme-za-state.c | 71 +------------
sysdeps/unix/sysv/linux/aarch64/clone.S | 3 +
sysdeps/unix/sysv/linux/aarch64/clone3.S | 3 +
sysdeps/unix/sysv/linux/aarch64/setcontext.S | 10 +-
sysdeps/unix/sysv/linux/aarch64/sysdep.h | 33 ++++++
sysdeps/unix/sysv/linux/aarch64/vfork.S | 3 +
17 files changed, 508 insertions(+), 105 deletions(-)
create mode 100644 sysdeps/aarch64/tst-sme-clone.c
create mode 100644 sysdeps/aarch64/tst-sme-clone3.c
create mode 100644 sysdeps/aarch64/tst-sme-fork.c
create mode 100644 sysdeps/aarch64/tst-sme-signal.c
create mode 100644 sysdeps/aarch64/tst-sme-skeleton.c
create mode 100644 sysdeps/aarch64/tst-sme-vfork.c
--
2.47.3
More information about the Libc-alpha
mailing list