[PATCH 0/5] Simplify kernel-mode NEON
Dave Martin
Dave.Martin at arm.com
Fri Aug 4 06:22:10 PDT 2017
On Fri, Aug 04, 2017 at 02:12:12PM +0100, Catalin Marinas wrote:
> On Fri, Aug 04, 2017 at 01:25:03PM +0100, Ard Biesheuvel wrote:
> > On 4 August 2017 at 13:22, Catalin Marinas <catalin.marinas at arm.com> wrote:
> > > On Fri, Aug 04, 2017 at 01:08:58PM +0100, Catalin Marinas wrote:
> > >> On Thu, Aug 03, 2017 at 05:23:18PM +0100, Dave P Martin wrote:
> > >> > This series depends on Ard's v4.14 crypto rework [2].
> > > [...]
> > >> > [2] http://lists.infradead.org/pipermail/linux-arm-kernel/2017-July/520664.html
> > > [...]
> > >> > Ard Biesheuvel (1):
> > >> > arm64: neon: replace generic definition of may_use_simd()
> > >> >
> > >> > Dave Martin (4):
> > >> > arm64: neon: Add missing header guard in <asm/neon.h>
> > >> > arm64: fpsimd: Consistently use __this_cpu_ ops where appropriate
> > >> > arm64: neon: Allow EFI runtime services to use FPSIMD in irq context
> > >> > arm64: neon: Remove support for nested or hardirq kernel-mode NEON
> > >>
> > >> Queued for 4.14. Thanks.
> > >
> > > ... and reverted.
> > >
> > > I now realised that it doesn't build without Ard's crypto series (I had
> > > the wrong impression it is just a performance impact). I get errors
> > > like:
> > >
> > > arch/arm64/crypto/sha1-ce-glue.c|41 col 2| error: implicit declaration
> > > of function ‘kernel_neon_begin_partial’
> >
> > Ah yes. Apologies for failing to mention that. Apparently, there are
> > in fact build time cross-dependencies that I forgot about.
> >
> > To avoid delaying this unnecessarily, we just alias
> > kernel_neon_begin_partial() to kernel_neon_begin() and ignore the
> > argument. We can remove that again when everything has gone upstream.
>
> But would kernel_neon_begin() be called in an interrupt context from the
> crypto code? I'd like the arm64 for-next/core branch (to be based on
I think that this can happen (unless Ard knows otherwise).
However, I think the two affected cases would be
* crypto in irq (which mostly doesn't happen due to generic
may_use_simd() returning false)
* EFI in irq (which doesn't exist yet)
> -rc4 next week) to still be fully working.
This is why I was wondering whether everything should go through the
same tree.
If we merged patch 1 into patch 5, there will be no window where
may_use_simd() unconditionally returns true, so code that checks
for this will defer crypto to a non-irq context.
Ard can comment if the gotchas here I've missed.
In particular, I don't know whether any crypto gets unconditionally
executed in irq context prior to Ard's patches.
Cheers
---Dave
More information about the linux-arm-kernel
mailing list