On 5 May 2011 17:21, Christian Robottom Reis <k...@linaro.org> wrote:
> Hey there,
>
>    I was asked today in the board meeting about the use of NEON
> routines in the kernel; I said we had looked into this but hadn't done
> it because a) it wasn't conclusively better and b) if better, it would
> need to be done conditionally per-platform. But I wanted to double-check
> that's actually true (and I'm copying Vijay to keep me honest). I have
> some references:
>
>    http://lists.linaro.org/pipermail/linaro-toolchain/2011-January/000722.html
>
>    
> http://groups.google.com/group/beagleboard/browse_thread/thread/12c7bd415fbc0993/c54dde7b9d55cf99?pli=1
>
>    http://www.spinics.net/lists/arm-kernel/msg106503.html
>
>    http://dev.gentoo.org/~armin76/arm/memcpy-neon_result.txt
>
>    
> https://wiki.linaro.org/WorkingGroups/ToolChain/Benchmarks/InitialMemcpy?highlight=%28memcpy%29
>    
> https://wiki.linaro.org/WorkingGroups/ToolChain/StringRoutines?highlight=%28memcpy%29

Back in 2003-2004 iirc, Freescale played with the idea of using
Altivec (the PowerPC SIMD engine)
inside the kernel, and published a paper on this:

http://cache.freescale.com/files/32bit/doc/app_note/AN2581.pdf

All of it is a good read, but for the hasty ones, I'd suggest moving
to paragraph 3.3: in
essense it says that due to potential problems in context switching
(ie if a usermode
applications contests with the kernel for the SIMD unit), performance
might drop for
both due to excessive context switching. OTOH, a new SIMD-memcpy used
in specific
cases or even combined with some other functionality -as for example
the TCP checksum
in this case- might prove quite rewarding and probably the proper way
to use a SIMD
inside the kernel. I'm sure that this is irrelevant of the actual SIMD
unit in question,
whatever applies to NEON might apply as well to Altivec or SSE*.

Regards

Konstantinos

_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to