Hi Victor, I took a look into the odp_cspeed source code and I noticed the following two things:
- #define SHM_PKT_POOL_BUF_SIZE (1024 * 32) - I think this value should be related to the largest MTU the platform supports (maybe given as command line argument). - the application uses POLL queues exclusively to benchmark - I think there should be also way to get the packets through the scheduler. Thanks, Alex On 11 September 2014 04:10, Victor Kamensky <[email protected]> wrote: > 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 >
_______________________________________________ lng-odp mailing list [email protected] http://lists.linaro.org/mailman/listinfo/lng-odp
