[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