Hello Victor, will you send update to that series? I think it will be good to merge it to odp.

Thanks,
Maxim.

On 09/11/2014 05:10 AM, Victor Kamensky 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



_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to