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

Reply via email to