]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
Pull branch 'for-rmk' of git://git.linaro.org/people/ardbiesheuvel/linux-arm into...
authorRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 22 Jul 2013 16:26:27 +0000 (17:26 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 22 Jul 2013 16:46:40 +0000 (17:46 +0100)
commitb4f656eea63376da79b0b5a17660c4ce14b71b74
tree36731cf326eca19cd2164f886b3eaa31449fe8fa
parent3b2f64d00c46e1e4e9bd0bb9bb12619adac27a4b
parent7d11965ddb9b9b1e0a5d13c58345ada1ccbc663b
Pull branch 'for-rmk' of git://git.linaro.org/people/ardbiesheuvel/linux-arm into devel-stable

Comments from Ard Biesheuvel:

I have included two use cases that I have been using, XOR and RAID-6
checksumming. The former gets a 60% performance boost on the NEON, the
latter over 400%.

ARM: add support for kernel mode NEON

Adds kernel_neon_begin/end (renamed from kernel_vfp_begin/end in the
previous version to de-emphasize the VFP part as VFP code that needs
software assistance is not supported currently.)

Introduces <asm/neon.h> and the Kconfig symbol KERNEL_MODE_NEON. This
has been aligned with Catalin for arm64, so any NEON code that does
not use assembly but intrinsics or the GCC vectorizer (such as my
examples) can potentially be shared between arm and arm64 archs.

ARM: move VFP init to an earlier boot stage

This is needed so the NEON is enabled when the XOR and RAID-6 algo
boot time benchmarks are run.

ARM: be strict about FP exceptions in kernel mode

This adds a check to vfp_support_entry() to flag unsupported uses of
the NEON/VFP in kernel mode. FP exceptions (bounces) are flagged as
a bug, this is because of their potentially intermittent nature.
Exceptions caused by the fact that kernel_neon_begin has not been
called are just routed through the undef handler.

ARM: crypto: add NEON accelerated XOR implementation

This is the xor_blocks() implementation built with -ftree-vectorize,
60% faster than optimized ARM code. It calls in_interrupt() to check
whether the NEON flavor can be used: this should really not be
necessary, but due to xor_blocks'squite generic nature, there is no
telling how exactly people may be using it in the real world.

lib/raid6: add ARM-NEON accelerated syndrome calculation

This is a port of the RAID-6 checksumming code in altivec.uc ported
to use NEON intrinsics. It is about 4x faster than the sequential
code.
arch/arm/Kconfig