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")

Signed-off-by: Fan Zhang <roy.fan.zh...@intel.com>
---
 app/test-crypto-perf/cperf_test_throughput.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/app/test-crypto-perf/cperf_test_throughput.c 
b/app/test-crypto-perf/cperf_test_throughput.c
index 70ec4ff..0f635b9 100644
--- a/app/test-crypto-perf/cperf_test_throughput.c
+++ b/app/test-crypto-perf/cperf_test_throughput.c
@@ -348,6 +348,16 @@ 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))
+                               memmove(&ops[ops_needed],
+                                               &ops[ops_enqd - ops_needed],
+                                               burst_size - ops_needed);
+
 #ifdef CPERF_LINEARIZATION_ENABLE
                        if (linearize) {
                                /* PMD doesn't support scatter-gather and 
source buffer
-- 
2.7.4

Reply via email to