crypto/ipsec_mb: enqueue counter fix

Message ID 20230418142249.38447-1-saoirse.odonovan@intel.com (mailing list archive)
State Superseded, archived
Delegated to: akhil goyal
Headers
Series crypto/ipsec_mb: enqueue counter fix |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/github-robot: build success github build: passed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-unit-testing success Testing PASS
ci/iol-abi-testing success Testing PASS
ci/intel-Functional success Functional PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS

Commit Message

O'Donovan, Saoirse April 18, 2023, 2:22 p.m. UTC
  This patch removes enqueue op counter update from the process_op_bit
function where the process is now done in dequeue stage. The original
stats increment was incorrect as they shouldn't have been updated at all
in this function.

Fixes: 4f1cfda59ad3 ("crypto/ipsec_mb: move snow3g PMD")
Cc: piotrx.bronowski@intel.com

Signed-off-by: Saoirse O'Donovan <saoirse.odonovan@intel.com>

---
A similar fix has been sent to 20.11 LTS stable, in the interest of
time. In that fix, the enqueued stat is still in use, therefore only the
fix to the count increment was necessary.

Here is the mail archive link:
https://mails.dpdk.org/archives/stable/2023-April/043550.html
---
 drivers/crypto/ipsec_mb/pmd_snow3g.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
  

Comments

Power, Ciara April 18, 2023, 2:26 p.m. UTC | #1
> -----Original Message-----
> From: Saoirse O'Donovan <saoirse.odonovan@intel.com>
> Sent: Tuesday 18 April 2023 15:23
> To: Ji, Kai <kai.ji@intel.com>; De Lara Guarch, Pablo
> <pablo.de.lara.guarch@intel.com>
> Cc: dev@dpdk.org; luca.boccassi@gmail.com; O'Donovan, Saoirse
> <saoirse.odonovan@intel.com>; Bronowski, PiotrX
> <piotrx.bronowski@intel.com>
> Subject: [PATCH] crypto/ipsec_mb: enqueue counter fix
> 
> This patch removes enqueue op counter update from the process_op_bit
> function where the process is now done in dequeue stage. The original stats
> increment was incorrect as they shouldn't have been updated at all in this
> function.
> 
> Fixes: 4f1cfda59ad3 ("crypto/ipsec_mb: move snow3g PMD")
> Cc: piotrx.bronowski@intel.com
> 
> Signed-off-by: Saoirse O'Donovan <saoirse.odonovan@intel.com>
> 
> ---
> A similar fix has been sent to 20.11 LTS stable, in the interest of time. In that
> fix, the enqueued stat is still in use, therefore only the fix to the count
> increment was necessary.
> 
> Here is the mail archive link:
> https://mails.dpdk.org/archives/stable/2023-April/043550.html
> ---
>  drivers/crypto/ipsec_mb/pmd_snow3g.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 

Acked-by: Ciara Power <ciara.power@intel.com>
  

Patch

diff --git a/drivers/crypto/ipsec_mb/pmd_snow3g.c b/drivers/crypto/ipsec_mb/pmd_snow3g.c
index 8ed069f428..e64df1a462 100644
--- a/drivers/crypto/ipsec_mb/pmd_snow3g.c
+++ b/drivers/crypto/ipsec_mb/pmd_snow3g.c
@@ -372,9 +372,10 @@  process_ops(struct rte_crypto_op **ops, struct snow3g_session *session,
 /** Process a crypto op with length/offset in bits. */
 static int
 process_op_bit(struct rte_crypto_op *op, struct snow3g_session *session,
-		struct ipsec_mb_qp *qp, uint16_t *accumulated_enqueued_ops)
+		struct ipsec_mb_qp *qp)
 {
-	uint32_t enqueued_op, processed_op;
+	unsigned int processed_op;
+	int ret;
 
 	switch (session->op) {
 	case IPSEC_MB_OP_ENCRYPT_ONLY:
@@ -421,9 +422,10 @@  process_op_bit(struct rte_crypto_op *op, struct snow3g_session *session,
 
 	if (unlikely(processed_op != 1))
 		return 0;
-	enqueued_op = rte_ring_enqueue(qp->ingress_queue, op);
-	qp->stats.enqueued_count += enqueued_op;
-	*accumulated_enqueued_ops += enqueued_op;
+
+	ret = rte_ring_enqueue(qp->ingress_queue, op);
+	if (ret != 0)
+		return ret;
 
 	return 1;
 }
@@ -439,7 +441,6 @@  snow3g_pmd_dequeue_burst(void *queue_pair,
 	struct snow3g_session *prev_sess = NULL, *curr_sess = NULL;
 	uint32_t i;
 	uint8_t burst_size = 0;
-	uint16_t enqueued_ops = 0;
 	uint8_t processed_ops;
 	uint32_t nb_dequeued;
 
@@ -479,8 +480,7 @@  snow3g_pmd_dequeue_burst(void *queue_pair,
 				prev_sess = NULL;
 			}
 
-			processed_ops = process_op_bit(curr_c_op, curr_sess,
-							qp, &enqueued_ops);
+			processed_ops = process_op_bit(curr_c_op, curr_sess, qp);
 			if (processed_ops != 1)
 				break;