Hey Ard, On Fri, 8 Dec 2023 12:32:19 +0100, Ard Biesheuvel wrote: > From: Ard Biesheuvel <ardb@xxxxxxxxxx> > > Currently, kernel mode NEON (SIMD) support is implemented in a way that > requires preemption to be disabled while the SIMD registers are live. > The reason for this is that those registers are not in the set that is > preserved/restored on exception entry/exit and context switch, as this > would impact performance generally, even for workloads where kernel mode > SIMD is not the bottleneck. > > [...] I applied the first three patches to for-next/fpsimd: [1/4] arm64: fpsimd: Drop unneeded 'busy' flag https://git.kernel.org/arm64/c/e109130b0e5e [2/4] arm64: fpsimd: Preserve/restore kernel mode NEON at context switch https://git.kernel.org/arm64/c/1e3a3de1ff6c [3/4] arm64: fpsimd: Implement lazy restore for kernel mode FPSIMD https://git.kernel.org/arm64/c/035262623959 It would be nice to have an Ack from Herbert on the last one so that he's aware of the possible conflicts. The other thing I tangentially wondered about is what happens now if code calls uaccess routines (e.g. get_user()) within a kernel_neon_{begin,end} section? I think previously the fact that preemption had to be disabled would've caused the might_fault() to explode, but now I suppose the BUG_ON() in kernel_neon_begin() will save us. Is that right? Cheers, -- Will https://fixes.arm64.dev https://next.arm64.dev https://will.arm64.dev