Hi Ard, On Fri, Dec 8, 2023 at 12:34 PM Ard Biesheuvel <ardb@xxxxxxxxxx> wrote: > From: Ard Biesheuvel <ardb@xxxxxxxxxx> > Kernel mode NEON will preserve the user mode FPSIMD state by saving it > into the task struct before clobbering the registers. In order to avoid > the need for preserving kernel mode state too, we disallow nested use of > kernel mode NEON, i..e, use in softirq context while the interrupted > task context was using kernel mode NEON too. > > Originally, this policy was implemented using a per-CPU flag which was > exposed via may_use_simd(), requiring the users of the kernel mode NEON > to deal with the possibility that it might return false, and having NEON > and non-NEON code paths. This policy was changed by commit > 13150149aa6ded1 ("arm64: fpsimd: run kernel mode NEON with softirqs > disabled"), and now, softirq processing is disabled entirely instead, > and so may_use_simd() can never fail when called from task or softirq > context. > > This means we can drop the fpsimd_context_busy flag entirely, and > instead, ensure that we disable softirq processing in places where we > formerly relied on the flag for preventing races in the FPSIMD preserve > routines. > > Signed-off-by: Ard Biesheuvel <ardb@xxxxxxxxxx> > Reviewed-by: Mark Brown <broonie@xxxxxxxxxx> Thanks for your patch, which is now commit e109130b0e5ec3fd ("arm64: fpsimd: Drop unneeded 'busy' flag") in arm64/for-next/core and next-20231212. I have bisected the following warning during boot (on Salvator-XS with R-Car H3 ES2.0 and on White-Hawk with R-Car V4H) followed by a lock-up (on Salvator-XS) to this commit: Reverting commits 035262623959cbe1 ("arm64: fpsimd: Implement lazy restore for kernel mode FPSIMD"), 1e3a3de1ff6ca6b1 ("arm64: fpsimd: Preserve/restore kernel mode NEON at context switch"), and this commit fixes the issue. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds