Thread (28 messages) 28 messages, 5 authors, 2019-04-11

Re: [RFC PATCH] arm64/fpsimd: Don't disable softirq when touching FPSIMD/SVE state

From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: 2019-02-13 16:50:42
Also in: linux-rt-users, lkml

On 2019-02-13 15:36:30 [+0000], Dave Martin wrote:
On Wed, Feb 13, 2019 at 03:30:29PM +0100, Sebastian Andrzej Siewior wrote:
quoted
On 2019-02-08 16:55:13 [+0000], Julien Grall wrote:
quoted
When the kernel is compiled with CONFIG_KERNEL_MODE_NEON, some part of
the kernel may be able to use FPSIMD/SVE. This is for instance the case
for crypto code.

Any use of FPSIMD/SVE in the kernel are clearly marked by using the
function kernel_neon_{begin, end}. Furthermore, this can only be used
when may_use_simd() returns true.
This is equal what x86 is currently doing. The naming is slightly
different, there is irq_fpu_usable().
Yes, I think it's basically the same idea.

It's been evolving a bit on both sides, but is quite similar now.
I though that this is complicated and wanted to submit a patch to remove
irq_fpu_usable() and disable BH as part of kernel_fpu_begin() (but have
currently the onother FPU series ongoing which I want to finish first).

…
"Usually" is probably not good enough if another task can run: if the
preempting task enters userspace then the vector registers are needed
for its use, which is tricky to arrange if the registers are currently
in use by context switch logic running in the first task.
Yes.
My current feeling is that we probably have to stick with
preempt_disable() here, but hopefully we can get rid of
local_bh_disable() (as proposed) with no ill effects...

Does that sound sensible?
If you want to stick with may_use_simd() then yes.
Cheers
---Dave
Sebastian

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help