From 44e2980b70d14cf287779bd53a162b81d94e23cf Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Tue, 18 Apr 2017 15:48:31 +0100 Subject: [PATCH] app/crypto-perf: fix crypto operation resubmission This patch fixes the crypto operation resubmission problem in crypto perferformance test. Originally, when needed crypto ops amount is smaller than the enqueued crypto ops in the last round, one or more processed crypto operations will be re-enqueued. Fixes: f8be1786b1b8 ("app/crypto-perf: introduce performance test application") Cc: stable@dpdk.org Signed-off-by: Fan Zhang Acked-by: Pablo de Lara --- app/test-crypto-perf/cperf_test_throughput.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app/test-crypto-perf/cperf_test_throughput.c b/app/test-crypto-perf/cperf_test_throughput.c index 70ec4ffc66..61b27ea5f3 100644 --- a/app/test-crypto-perf/cperf_test_throughput.c +++ b/app/test-crypto-perf/cperf_test_throughput.c @@ -348,6 +348,19 @@ cperf_throughput_test_runner(void *test_ctx) ops_needed, ctx->sess, ctx->options, ctx->test_vector); + /** + * When ops_needed is smaller than ops_enqd, the + * unused ops need to be moved to the front for + * next round use. + */ + if (unlikely(ops_enqd > ops_needed)) { + size_t nb_b_to_mov = ops_unused * sizeof( + struct rte_crypto_op *); + + memmove(&ops[ops_needed], &ops[ops_enqd], + nb_b_to_mov); + } + #ifdef CPERF_LINEARIZATION_ENABLE if (linearize) { /* PMD doesn't support scatter-gather and source buffer