[PATCH RT] arm*: disable NEON in kernel mode
From: peterz@infradead.org (Peter Zijlstra)
Date: 2017-12-01 17:39:58
Also in:
linux-rt-users, lkml
From: peterz@infradead.org (Peter Zijlstra)
Date: 2017-12-01 17:39:58
Also in:
linux-rt-users, lkml
On Fri, Dec 01, 2017 at 05:31:20PM +0000, Russell King - ARM Linux wrote:
On Fri, Dec 01, 2017 at 06:14:58PM +0100, Peter Zijlstra wrote:quoted
Well, PREEMPT cares about that too.Preempt may care, but it's the hit you take to use neon in the kernel. The neon register set shares with the FPU, so preempting during that path means that the normal FPU register saving would corrupt the already saved user FPU context - and even worse would result in the kernel's crypto function register contents being leaked to userspace.
Same thing on x86.
If you care about preempt deeply, the only solution is to avoid using kernel mode neon.
Not quite, you can write the code such that it drops out of neon mode regularly to allow preemption. So setup a crypto block, enter neon, transform the block, drop out of neon, rinse repeat.