[dpdk-dev] app/test-crypto-perf: fix crypto operation resubmission

Message ID 1491836242-124659-1-git-send-email-roy.fan.zhang@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Pablo de Lara Guarch
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Fan Zhang April 10, 2017, 2:57 p.m. UTC
  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.zhang@intel.com>
---
 app/test-crypto-perf/cperf_test_throughput.c | 10 ++++++++++
 1 file changed, 10 insertions(+)
  

Comments

De Lara Guarch, Pablo April 17, 2017, 8:28 p.m. UTC | #1
> -----Original Message-----
> From: Zhang, Roy Fan
> Sent: Monday, April 10, 2017 3:57 PM
> To: dev@dpdk.org
> Cc: De Lara Guarch, Pablo; stable@dpdk.org
> Subject: [PATCH] app/test-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")
> 
> Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>

Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
  

Patch

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