2015-02-22 08:59:36

by Markus Stockhausen

[permalink] [raw]
Subject: [PATCH v2 0/7] AES for PPC/SPE

[PATCH v2 0/7] AES for PPC/SPE

The following patches add support for 64bit accelerated AES
calculation on PPC processors with SPE instruction set. Besides
the AES core module it implements ECB/CBC/CTR/XTS as block
ciphers. The implementation takes care of the following
constraints:

- save SPE registers for interrupt context compatibility
- disable preemption only for short intervals
- endian independant

Module passes tcrypt mode=10 tests. Synthethic AES speedup
factors from insmod tcrypt sec=3 mode=200 taken on e500v2
800 MHz (TP Link WDR4900) compared with the generic kernel
module.

key bytes ecb ecb cbc cbc ctr ctr xts xts
enc dec enc dec enc dec enc dec
--- ----- ---- ---- ---- ---- ---- ---- ---- ----
128 16 1.14 1.14 1.20 1.28 1.20 1.19 1.20 1.21
128 64 1.35 1.36 1.48 1.51 1.50 1.50 1.41 1.41
128 256 1.49 1.49 1.66 1.65 1.69 1.69 1.58 1.57
128 1024 1.51 1.51 1.69 1.68 1.72 1.72 1.61 1.60
128 8192 1.52 1.52 1.70 1.68 1.73 1.73 1.62 1.61
192 16 1.14 1.15 1.22 1.28 1.21 1.21 1.22 1.23
192 64 1.36 1.37 1.48 1.49 1.49 1.50 1.41 1.41
192 256 1.48 1.48 1.63 1.63 1.65 1.65 1.56 1.55
192 1024 1.50 1.50 1.65 1.64 1.68 1.68 1.59 1.58
192 8192 1.52 1.52 1.67 1.66 1.68 1.68 1.60 1.59
256 16 1.17 1.18 1.24 1.30 1.23 1.22 1.24 1.25
256 64 1.37 1.37 1.47 1.50 1.49 1.49 1.42 1.41
256 256 1.48 1.47 1.60 1.60 1.63 1.63 1.54 1.53
256 1024 1.50 1.49 1.62 1.61 1.65 1.65 1.57 1.56
256 8192 1.50 1.49 1.63 1.62 1.66 1.66 1.58 1.57

Additionally numbers from an iperf transfer benchmark. They
include the AES optimized and the SHA256 optimized module.

- Server : Xeon X3470 2.93GHz
- Client : Core I5 2.4GHz Windows (Shrew VPN client)
- Gateway: e500v2 800 MHz (TP Link WDR4900)

AES256 generic / SHA256 generic modules:
> iperf.exe -c a.b.c.d -t 60 -i 10
------------------------------------------------------------
Client connecting to a.b.c.d, TCP port 5001
TCP window size: 63.0 KByte (default)
------------------------------------------------------------
[ 3] local u.v.w.x port 50730 connected with a.b.c.d port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 51.1 MBytes 42.9 Mbits/sec
[ 3] 10.0-20.0 sec 51.9 MBytes 43.5 Mbits/sec
[ 3] 20.0-30.0 sec 51.5 MBytes 43.2 Mbits/sec
[ 3] 30.0-40.0 sec 51.5 MBytes 43.2 Mbits/sec
[ 3] 40.0-50.0 sec 51.2 MBytes 43.0 Mbits/sec
[ 3] 50.0-60.0 sec 50.6 MBytes 42.5 Mbits/sec
[ 3] 0.0-60.0 sec 308 MBytes 43.0 Mbits/sec

AES256 (this patch) / SHA256 (my last patch)
> iperf.exe -c a.b.c.d -t 60 -i 10
------------------------------------------------------------
Client connecting to a.b.c.d, TCP port 5001
TCP window size: 63.0 KByte (default)
------------------------------------------------------------
[ 3] local u.v.w.x port 50730 connected with a.b.c.d port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 69.6 MBytes 58.4 Mbits/sec
[ 3] 10.0-20.0 sec 69.1 MBytes 58.0 Mbits/sec
[ 3] 20.0-30.0 sec 69.2 MBytes 58.1 Mbits/sec
[ 3] 30.0-40.0 sec 67.1 MBytes 56.3 Mbits/sec
[ 3] 40.0-50.0 sec 67.6 MBytes 56.7 Mbits/sec
[ 3] 50.0-60.0 sec 65.9 MBytes 55.3 Mbits/sec
[ 3] 0.0-60.0 sec 409 MBytes 57.1 Mbits/sec


Attachments:
InterScan_Disclaimer.txt (1.61 kB)