Hi Folks,
I put together small test program that measures speed with which
ODP crypto operation could be performed. No other activity (i.e
no network operations) just send as much as possible packets to
encrypt and measure time around.
Per crypto algoithm (ODP crypto operation) per payload test reports
o average elapsed time that takes per one operation
o CPU time of whole process per one operation
o CPU time of current thread per one operation
Few minor changes precede main patch.
Here is couple example outputs, run on Keystone II from linux-generic
and latest posted linux-keystone2. Basically it shows that hw optimized
implementation can do 3des operation in 22 times faster than sw opensll
based implementation. Note Taras did not spend any time on optimizing
his linux-keystone2 implementation, so I hope latter results could be
even better.
linux-generic
-------------
root@genericarmv7a:~/odp/20140910/generic_armv7/example/cspeed# ./odp_cspeed
Buffer pool init global
pool_entry_s size 128
pool_entry_t size 128
odp_buffer_hdr_t size 72
Queue init ... done
Queue init global
struct queue_entry_s size 192
queue_entry_t size 192
Schedule init ... done
Timer init ...done
algorithm avg over # payload (bytes) elapsed (us)
rusg self (us) rusg thrd (us) throughput (Kb)
3des-cbs-null 10000 16 3.849
4.000 4.000 4059
3des-cbs-null 10000 64 11.162
11.000 11.000 5599
3des-cbs-null 10000 256 40.449
41.000 41.000 6180
3des-cbs-null 10000 1024 157.590
157.000 157.000 6345
3des-cbs-null 10000 8192 1251.681
1251.000 1251.000 6391
3des-cbs-null 10000 16384 2503.306
2502.000 2501.000 6391
algorithm avg over # payload (bytes) elapsed (us)
rusg self (us) rusg thrd (us) throughput (Kb)
3des-cbs-hmac-md5-96 10000 16 13.966
14.000 13.000 1118
3des-cbs-hmac-md5-96 10000 64 21.845
22.000 21.000 2861
3des-cbs-hmac-md5-96 10000 256 52.754
53.000 52.000 4738
3des-cbs-hmac-md5-96 10000 1024 176.684
176.000 176.000 5659
3des-cbs-hmac-md5-96 10000 8192 1331.569
1331.000 1330.000 6007
3des-cbs-hmac-md5-96 10000 16384 2653.549
2652.000 2652.000 6029
algorithm avg over # payload (bytes) elapsed (us)
rusg self (us) rusg thrd (us) throughput (Kb)
null-hmac-md5-96 10000 16 9.596
10.000 9.000 1628
null-hmac-md5-96 10000 64 10.201
10.000 10.000 6126
null-hmac-md5-96 10000 256 12.393
12.000 12.000 20172
null-hmac-md5-96 10000 1024 19.038
19.000 19.000 52526
null-hmac-md5-96 10000 8192 82.906
83.000 83.000 96495
null-hmac-md5-96 10000 16384 156.675
157.000 157.000 102122
linux-keystone2
---------------
root@genericarmv7a:~/odp/20140910/keystone2_armv7/example/cspeed# ./odp_cspeed
-f 20
Schedule init ... done
Timer init ...done
algorithm avg over # payload (bytes) elapsed (us)
rusg self (us) rusg thrd (us) throughput (Kb)
3des-cbs-null 10000 16 2.623
3.000 2.000 5956
3des-cbs-null 10000 64 2.636
3.000 2.000 23712
3des-cbs-null 10000 256 2.737
2.000 2.000 91354
3des-cbs-null 10000 1024 7.033
7.000 7.000 142194
3des-cbs-null 10000 8192 56.252
57.000 56.000 142216
3des-cbs-null 10000 16384 112.502
112.000 112.000 142219
algorithm avg over # payload (bytes) elapsed (us)
rusg self (us) rusg thrd (us) throughput (Kb)
3des-cbs-hmac-md5-96 10000 16 2.794
3.000 3.000 5591
3des-cbs-hmac-md5-96 10000 64 2.804
3.000 3.000 22293
3des-cbs-hmac-md5-96 10000 256 2.852
2.000 2.000 87670
3des-cbs-hmac-md5-96 10000 1024 7.350
8.000 8.000 136056
3des-cbs-hmac-md5-96 10000 8192 56.252
56.000 56.000 142218
3des-cbs-hmac-md5-96 10000 16384 112.502
112.000 112.000 142220
algorithm avg over # payload (bytes) elapsed (us)
rusg self (us) rusg thrd (us) throughput (Kb)
null-hmac-md5-96 10000 16 2.742
2.000 2.000 5698
null-hmac-md5-96 10000 64 2.762
3.000 2.000 22630
null-hmac-md5-96 10000 256 2.799
3.000 2.000 89333
null-hmac-md5-96 10000 1024 7.350
7.000 7.000 136056
null-hmac-md5-96 10000 8192 53.151
53.000 53.000 150514
null-hmac-md5-96 10000 16384 105.495
106.000 105.000 151666
Victor Kamensky (5):
linux-generic: crypto: add simple
odp_crypto_get_operation_compl_packet impl
linux-generic: crypto: odp_crypto_session_create in failure set
session to invalid
linux-generic: crypto: added dummy odp_crypto_session_destroy
linux-generic: api: add odp_crypto.h and odp_rwlock.h to odp.h
example: test program that measures speed of ODP crypto operations
configure.ac | 1 +
example/Makefile.am | 2 +-
example/cspeed/Makefile.am | 6 +
example/cspeed/odp_cspeed.c | 918 ++++++++++++++++++++++++
platform/linux-generic/include/api/odp.h | 2 +
platform/linux-generic/include/api/odp_crypto.h | 2 +
platform/linux-generic/odp_crypto.c | 20 +-
7 files changed, 949 insertions(+), 2 deletions(-)
create mode 100644 example/cspeed/Makefile.am
create mode 100644 example/cspeed/odp_cspeed.c
--
1.8.1.4
_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp