[PATCH 2/2] ARM: move VFP init to an earlier boot stage

Russell King - ARM Linux linux at arm.linux.org.uk
Thu May 23 04:41:26 EDT 2013


On Thu, May 23, 2013 at 09:28:24AM +0200, Ard Biesheuvel wrote:
> In order to use the NEON/VFP unit in the kernel, we should
> initialize it a bit earlier in the boot process so NEON users
> that like to do a quick benchmark at load time (like the
> xor_blocks or RAID-6 code) find the NEON/VFP unit already
> enabled.

So what are the results of those benchmarks that the RAID-6 code does?

This isn't something which will get accepted without there being a very
strong case for it; firstly, we've always said "no FP in the kernel".
Secondly, it makes it too easy for people to start thinking that FP is
safe in the kernel.  It isn't - this will go horribly wrong if the VFP
hardware bounces an instruction to the support code.

Lastly, what happens if you sleep between kernel_vfp_start() and
kernel_vfp_end() ?  That's a context switch which will mess up your
VFP state.  I think you need to take a spinlock (not _bh nor _irqsave
versions) in here to ensure that people don't get the idea that they
_can_ sleep between these two.

So, good attempt, but I think you need to think about this more, and
also justify the need for it.



More information about the linux-arm-kernel mailing list