Arm64 adopts generic syscall entry in the Linux kernel
A long-running conversion brings AArch64 in line with x86 and RISC-V, shrinking arch-specific tracing code and unlocking shared syscall features.
The Linux arm64 port is moving its system-call enter and exit paths onto the kernel's generic entry infrastructure, completing a shift that already covered IRQ entry and matching the model used by x86, RISC-V, LoongArch, PowerPC, and s390.
Jinjie Ruan of Huawei has posted a revised patch series that replaces arm64-specific syscall tracing, audit, seccomp, and ptrace handling with the common framework. The practical effect is less duplicated architecture code and automatic inheritance of fixes and improvements made in the shared entry layer. Ruan notes the conversion also makes it far simpler to land cross-architecture work such as Syscall User Dispatch and rseq time-slice extension optimizations on arm64.
Preparatory changes align arm64 with generic helpers for audit and argument gathering, open-code seccomp checks the same way other architectures do, and ensure rseq validation runs on the real instruction pointer before a tracer can rewrite it. Exit-path flag checks are narrowed so entry-only work bits are not re-evaluated on the way out. After the switch, the compiler stopped inlining a hot SVC helper; a follow-up forces that inline and recovers about one percent on a basic syscall benchmark on Kunpeng hardware.
A Syscall User Dispatch patch was dropped at Mark Rutland's suggestion. The series keeps full userspace ABI compatibility and was exercised with stress-ng, hackbench, arm64 kselftests, ptrace stress, and Pseudo-NMI load testing.