On Wednesday 20 April 2011, Dave Martin wrote:
You're right; ARM doesn't currently have these so far as I can tell -- this is a possible area of investigation for linaro. Although we don't want to see sporadic FP operations dotted around the kernel, it may be worth saving/restoring the registers for specific bulk integer processing operations which we could using NEON, such as packet checksums, CRCs and crypto operations for example. It's hard to quantify the advantages (if any) without doing some investigation and benchmarking, though.
However, the benefit of allowing kprobes to be set in such code may still not merit the effort. We can revisit it later if it looks important.
I don't think it's likely to be worthwhile for packet checksums, since network packets are usually short. Anything related to block devices might be a better candidate.
Is it possible to write an efficient AES implementation in NEON? We investigated using AltiVec on powerpc for AES before, where it turned out to be not worth it. Using Altivec was much faster than 64 bit integer operations, but the benefit was smaller than the overhead of enabling the unit and saving all the registers.
Arnd