This is a complete submission of $subject against current git.
1 - required casting to retrieve private struct out of crypto API
2 - function to retrieve private crypto struct. Herbert queued this
already for 2.6.24.
3 - KSPU doc
4 - KSPU skeleton
5 - exporting required symbols within spufs.ko
6 - allocation of KSPU context
7 - KSPU, PPU side implementation
8 - KSPU, SPE side implementation
9 - AES as KSPU & Crypto user. Providing ECB+CBC block mode
10 - testing module for AES crypto.
Herbert, I've put you on CC to consider patch 1 for inclusion. As I noticed
earlier, KSPU is a general purpose interface so it is not clever to use
crypto's infrastructure since KSPU may be used for non-crypto related
tasks. However, I included a soft limit.
Figure  shows performance of aes-spu in ECB mode with a transfer size
of 16 KiBb. Generic is crypto/aes.c compiled for SPU, sync means it is there
is no queue process just copy data and start the SPU, async is what is
provided by the patch series.
Figure  shows the performance with different DMA transfer sizes
(smaller chunks = more transfers). Async benefits from double buffering
and more requests at a time but slower at 16 KiB due to more communication.
The pdfs are 4.6 KiB each but scalable :)