This patchset includes some improvements in the Crypto
performance application, including app fixes and new parameter additions.
The last patch, in particular, introduces performance improvements.
Currently, crypto operations are allocated in a mempool and mbufs
in a different one. Then mbufs are extracted to an array,
which is looped through for all the crypto operations,
impacting greatly the performance, as much more memory is used.
Since crypto operations and mbufs are mapped 1:1, the can share
the same mempool object (similar to having the mbuf in the
private data of the crypto operation).
This improves performance, as it is only required to handle
a single mempool and the mbufs are obtained from the cache
of the mempoool, and not from an static array.
Changes in v4:
- Refactored test code, to minimize duplications
- Removed --qp-nb parameter. Now the number of queue pairs
per device are calculated from the number of logical cores
available and the number of crypto devices
Changes in v3:
- Renamed "number of queue pairs" option from "--qps" to "--qp-nb",
for more consistency
Changes in v2:
- Added support for multiple queue pairs
- Mempool for crypto operations and mbufs is now created
using rte_mempool_create_empty(), rte_mempool_set_ops_byname(),
rte_mempool_populate_default() and rte_mempool_obj_iter(),
so mempool handler is set, as per Akhil's request.
Pablo de Lara (8):
app/crypto-perf: refactor common test code
app/crypto-perf: set AAD after the crypto operation
app/crypto-perf: parse AEAD data from vectors
app/crypto-perf: parse segment size
app/crypto-perf: overwrite mbuf when verifying
app/crypto-perf: do not populate the mbufs at init
app/crypto-perf: support multiple queue pairs
app/crypto-perf: use single mempool
app/test-crypto-perf/Makefile | 5 +
app/test-crypto-perf/cperf_ops.c | 136 ++++++++---
app/test-crypto-perf/cperf_ops.h | 2 +-
app/test-crypto-perf/cperf_options.h | 5 +-
app/test-crypto-perf/cperf_options_parsing.c | 47 ++--
app/test-crypto-perf/cperf_test_common.c | 225 ++++++++++++++++++
app/test-crypto-perf/cperf_test_common.h | 52 +++++
app/test-crypto-perf/cperf_test_latency.c | 239 +++----------------
app/test-crypto-perf/cperf_test_pmd_cyclecount.c | 239 ++++---------------
app/test-crypto-perf/cperf_test_throughput.c | 237 +++----------------
app/test-crypto-perf/cperf_test_vector_parsing.c | 55 +++++
app/test-crypto-perf/cperf_test_verify.c | 278 ++++++-----------------
app/test-crypto-perf/main.c | 100 +++++---
doc/guides/tools/cryptoperf.rst | 6 +-
14 files changed, 715 insertions(+), 911 deletions(-)
create mode 100644 app/test-crypto-perf/cperf_test_common.c
create mode 100644 app/test-crypto-perf/cperf_test_common.h
--
2.9.4