2007-08-16 20:05:57

by Sebastian Siewior

[permalink] [raw]
Subject: [patch 00/10] KSPU API + AES offloaded to SPU + testing module

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 [1] 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 [2] 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 :)

[1] http://download.breakpoint.cc/spu/spu_code_async.pdf
[2] http://download.breakpoint.cc/spu/spu_async_blocksize_aligned.pdf

sleepy Sebastian