[PATCH RT] arm64: fpsimd: use a local_lock() in addition to local_bh_disable()
From: Dave.Martin@arm.com (Dave Martin)
Date: 2018-05-18 12:46:49
Also in:
linux-rt-users, lkml
From: Dave.Martin@arm.com (Dave Martin)
Date: 2018-05-18 12:46:49
Also in:
linux-rt-users, lkml
On Thu, May 17, 2018 at 07:19:43PM +0100, Dave Martin wrote: [...]
kernel_neon_begin() could then do local_fpsimd_context_lock(); /* ... */ preempt_disable(); local_unlock(fpsimd_context_lock); ... with the following in kernel_neon_end(): local_unlock(fpsimd_lock); preempt_enable(); If kernel-mode NEON was considered harmful to RT due to the context switch overheads, then the above might be overkill. SVE will be worse in that regard, and also needs thinking about at some point -- I've not looked at if from the RT angle at all.
Hmmm, !KERNEL_MODE_NEON breaks EFI, so this probably does want looking at. Ard's recent rework to enable voluntary preemption the crypto backends for arm64 [1] should reduce the fpsimd_lock blackouts, but it still depends on the backends playing nice. Cheers ---Dave [1] [PATCH resend 00/10] crypto: arm64 - play nice with CONFIG_PREEMPT lists.infradead.org/pipermail/linux-arm-kernel/2018-April/574819.html