DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH v2 0/3] bbdev: sdditional queue stats
@ 2024-08-12 23:41 Nicolas Chautru
  2024-08-12 23:41 ` [PATCH v2 1/3] bbdev: new queue stat for available enqueue depth Nicolas Chautru
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Nicolas Chautru @ 2024-08-12 23:41 UTC (permalink / raw)
  To: dev, maxime.coquelin
  Cc: hemant.agrawal, david.marchand, hernan.vargas, Nicolas Chautru

v2: update to ABI doc suggested by Maxime. 

 These series include introducing a new paramter in the queue stat
which can be used to monitor the number of available enqueue
still possible. 
The acc PMD is then refactored to use a set of common function
to update several queue status parameters including the new one.
The application is also updated.
Thanks
Nic

Nicolas Chautru (3):
  bbdev: new queue stat for available enqueue depth
  baseband/acc: refactor queue status update
  test/bbdev: update for queue stats

 app/test-bbdev/test_bbdev_perf.c       |  1 +
 doc/guides/rel_notes/release_24_11.rst |  3 ++
 drivers/baseband/acc/acc_common.h      | 18 ++++++++
 drivers/baseband/acc/rte_acc100_pmd.c  | 45 ++++++-------------
 drivers/baseband/acc/rte_vrb_pmd.c     | 61 ++++++++------------------
 lib/bbdev/rte_bbdev.h                  |  2 +
 6 files changed, 56 insertions(+), 74 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2 1/3] bbdev: new queue stat for available enqueue depth
  2024-08-12 23:41 [PATCH v2 0/3] bbdev: sdditional queue stats Nicolas Chautru
@ 2024-08-12 23:41 ` Nicolas Chautru
  2024-09-10 15:16   ` Maxime Coquelin
  2024-08-12 23:42 ` [PATCH v2 2/3] baseband/acc: refactor queue status update Nicolas Chautru
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Nicolas Chautru @ 2024-08-12 23:41 UTC (permalink / raw)
  To: dev, maxime.coquelin
  Cc: hemant.agrawal, david.marchand, hernan.vargas, Nicolas Chautru

Capturing additional queue stats counter for the
depth of enqueue batch still available on the given
queue. This can help application to monitor that depth
at run time.

Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
---
 doc/guides/rel_notes/release_24_11.rst | 3 +++
 lib/bbdev/rte_bbdev.h                  | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/doc/guides/rel_notes/release_24_11.rst b/doc/guides/rel_notes/release_24_11.rst
index 0ff70d9057..a45b9b2dc6 100644
--- a/doc/guides/rel_notes/release_24_11.rst
+++ b/doc/guides/rel_notes/release_24_11.rst
@@ -88,6 +88,9 @@ API Changes
 ABI Changes
 -----------
 
+  * bbdev: Structure ``rte_bbdev_stats`` was updated to add new parameter
+    to optionally report number of enqueue batch available ``enqueue_depth_avail``.
+
 .. This section should contain ABI changes. Sample format:
 
    * sample: Add a short 1-2 sentence description of the ABI change
diff --git a/lib/bbdev/rte_bbdev.h b/lib/bbdev/rte_bbdev.h
index 0cbfdd1c95..25514c58ac 100644
--- a/lib/bbdev/rte_bbdev.h
+++ b/lib/bbdev/rte_bbdev.h
@@ -283,6 +283,8 @@ struct rte_bbdev_stats {
 	 *     bbdev operation
 	 */
 	uint64_t acc_offload_cycles;
+	/** Available number of enqueue batch on that queue. */
+	uint16_t enqueue_depth_avail;
 };
 
 /**
-- 
2.34.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2 2/3] baseband/acc: refactor queue status update
  2024-08-12 23:41 [PATCH v2 0/3] bbdev: sdditional queue stats Nicolas Chautru
  2024-08-12 23:41 ` [PATCH v2 1/3] bbdev: new queue stat for available enqueue depth Nicolas Chautru
@ 2024-08-12 23:42 ` Nicolas Chautru
  2024-08-13  7:24   ` Mattia Milani
  2024-09-10 15:26   ` Maxime Coquelin
  2024-08-12 23:42 ` [PATCH v2 3/3] test/bbdev: update for queue stats Nicolas Chautru
                   ` (2 subsequent siblings)
  4 siblings, 2 replies; 11+ messages in thread
From: Nicolas Chautru @ 2024-08-12 23:42 UTC (permalink / raw)
  To: dev, maxime.coquelin
  Cc: hemant.agrawal, david.marchand, hernan.vargas, Nicolas Chautru

Introducing common function for queue stats update
within the acc PMDs.

Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
---
 drivers/baseband/acc/acc_common.h     | 18 ++++++++
 drivers/baseband/acc/rte_acc100_pmd.c | 45 ++++++--------------
 drivers/baseband/acc/rte_vrb_pmd.c    | 61 +++++++++------------------
 3 files changed, 50 insertions(+), 74 deletions(-)

diff --git a/drivers/baseband/acc/acc_common.h b/drivers/baseband/acc/acc_common.h
index e249f37e38..06a88360de 100644
--- a/drivers/baseband/acc/acc_common.h
+++ b/drivers/baseband/acc/acc_common.h
@@ -1555,6 +1555,24 @@ acc_aq_avail(struct rte_bbdev_queue_data *q_data, uint16_t num_ops)
 	return aq_avail;
 }
 
+/* Update queue stats during enqueue. */
+static inline void
+acc_update_qstat_enqueue(struct rte_bbdev_queue_data *q_data,
+		uint16_t enq_count, uint16_t enq_err_count)
+{
+	q_data->queue_stats.enqueued_count += enq_count;
+	q_data->queue_stats.enqueue_err_count += enq_err_count;
+	q_data->queue_stats.enqueue_depth_avail = acc_aq_avail(q_data, 0);
+}
+
+/* Update queue stats during dequeue. */
+static inline void
+acc_update_qstat_dequeue(struct rte_bbdev_queue_data *q_data, uint16_t deq_count)
+{
+	q_data->queue_stats.dequeued_count += deq_count;
+	q_data->queue_stats.enqueue_depth_avail = acc_aq_avail(q_data, 0);
+}
+
 /* Calculates number of CBs in processed encoder TB based on 'r' and input
  * length.
  */
diff --git a/drivers/baseband/acc/rte_acc100_pmd.c b/drivers/baseband/acc/rte_acc100_pmd.c
index ab69350080..d2a0a36e12 100644
--- a/drivers/baseband/acc/rte_acc100_pmd.c
+++ b/drivers/baseband/acc/rte_acc100_pmd.c
@@ -892,6 +892,7 @@ acc100_queue_stop(struct rte_bbdev *dev, uint16_t queue_id)
 	dev->data->queues[queue_id].queue_stats.dequeue_err_count = 0;
 	dev->data->queues[queue_id].queue_stats.enqueue_warn_count = 0;
 	dev->data->queues[queue_id].queue_stats.dequeue_warn_count = 0;
+	dev->data->queues[queue_id].queue_stats.enqueue_depth_avail = 0;
 
 	return 0;
 }
@@ -3196,9 +3197,7 @@ acc100_enqueue_enc_cb(struct rte_bbdev_queue_data *q_data,
 
 	acc_dma_enqueue(q, i, &q_data->queue_stats);
 
-	/* Update stats */
-	q_data->queue_stats.enqueued_count += i;
-	q_data->queue_stats.enqueue_err_count += num - i;
+	acc_update_qstat_enqueue(q_data, i, num - i);
 	return i;
 }
 
@@ -3245,9 +3244,7 @@ acc100_enqueue_ldpc_enc_cb(struct rte_bbdev_queue_data *q_data,
 
 	acc_dma_enqueue(q, desc_idx, &q_data->queue_stats);
 
-	/* Update stats */
-	q_data->queue_stats.enqueued_count += i;
-	q_data->queue_stats.enqueue_err_count += num - i;
+	acc_update_qstat_enqueue(q_data, i, num - i);
 
 	return i;
 }
@@ -3284,9 +3281,7 @@ acc100_enqueue_enc_tb(struct rte_bbdev_queue_data *q_data,
 
 	acc_dma_enqueue(q, enqueued_cbs, &q_data->queue_stats);
 
-	/* Update stats */
-	q_data->queue_stats.enqueued_count += i;
-	q_data->queue_stats.enqueue_err_count += num - i;
+	acc_update_qstat_enqueue(q_data, i, num - i);
 
 	return i;
 }
@@ -3322,9 +3317,7 @@ acc100_enqueue_ldpc_enc_tb(struct rte_bbdev_queue_data *q_data,
 
 	acc_dma_enqueue(q, enqueued_descs, &q_data->queue_stats);
 
-	/* Update stats. */
-	q_data->queue_stats.enqueued_count += i;
-	q_data->queue_stats.enqueue_err_count += num - i;
+	acc_update_qstat_enqueue(q_data, i, num - i);
 
 	return i;
 }
@@ -3388,9 +3381,7 @@ acc100_enqueue_dec_cb(struct rte_bbdev_queue_data *q_data,
 
 	acc_dma_enqueue(q, i, &q_data->queue_stats);
 
-	/* Update stats */
-	q_data->queue_stats.enqueued_count += i;
-	q_data->queue_stats.enqueue_err_count += num - i;
+	acc_update_qstat_enqueue(q_data, i, num - i);
 
 	return i;
 }
@@ -3426,9 +3417,7 @@ acc100_enqueue_ldpc_dec_tb(struct rte_bbdev_queue_data *q_data,
 
 	acc_dma_enqueue(q, enqueued_cbs, &q_data->queue_stats);
 
-	/* Update stats */
-	q_data->queue_stats.enqueued_count += i;
-	q_data->queue_stats.enqueue_err_count += num - i;
+	acc_update_qstat_enqueue(q_data, i, num - i);
 	return i;
 }
 
@@ -3468,9 +3457,7 @@ acc100_enqueue_ldpc_dec_cb(struct rte_bbdev_queue_data *q_data,
 
 	acc_dma_enqueue(q, i, &q_data->queue_stats);
 
-	/* Update stats */
-	q_data->queue_stats.enqueued_count += i;
-	q_data->queue_stats.enqueue_err_count += num - i;
+	acc_update_qstat_enqueue(q_data, i, num - i);
 	return i;
 }
 
@@ -3505,9 +3492,7 @@ acc100_enqueue_dec_tb(struct rte_bbdev_queue_data *q_data,
 
 	acc_dma_enqueue(q, enqueued_cbs, &q_data->queue_stats);
 
-	/* Update stats */
-	q_data->queue_stats.enqueued_count += i;
-	q_data->queue_stats.enqueue_err_count += num - i;
+	acc_update_qstat_enqueue(q_data, i, num - i);
 
 	return i;
 }
@@ -3897,8 +3882,7 @@ acc100_dequeue_enc(struct rte_bbdev_queue_data *q_data,
 	q->aq_dequeued += aq_dequeued;
 	q->sw_ring_tail += dequeued_descs;
 
-	/* Update enqueue stats */
-	q_data->queue_stats.dequeued_count += dequeued_ops;
+	acc_update_qstat_dequeue(q_data, dequeued_ops);
 
 	return dequeued_ops;
 }
@@ -3940,8 +3924,7 @@ acc100_dequeue_ldpc_enc(struct rte_bbdev_queue_data *q_data,
 	q->aq_dequeued += aq_dequeued;
 	q->sw_ring_tail += dequeued_descs;
 
-	/* Update enqueue stats */
-	q_data->queue_stats.dequeued_count += dequeued_ops;
+	acc_update_qstat_dequeue(q_data, dequeued_ops);
 
 	return dequeued_ops;
 }
@@ -3986,8 +3969,7 @@ acc100_dequeue_dec(struct rte_bbdev_queue_data *q_data,
 	q->aq_dequeued += aq_dequeued;
 	q->sw_ring_tail += dequeued_cbs;
 
-	/* Update enqueue stats */
-	q_data->queue_stats.dequeued_count += i;
+	acc_update_qstat_dequeue(q_data, i);
 
 	return i;
 }
@@ -4033,8 +4015,7 @@ acc100_dequeue_ldpc_dec(struct rte_bbdev_queue_data *q_data,
 	q->aq_dequeued += aq_dequeued;
 	q->sw_ring_tail += dequeued_cbs;
 
-	/* Update enqueue stats */
-	q_data->queue_stats.dequeued_count += i;
+	acc_update_qstat_dequeue(q_data, i);
 
 	return i;
 }
diff --git a/drivers/baseband/acc/rte_vrb_pmd.c b/drivers/baseband/acc/rte_vrb_pmd.c
index 585dc49bd6..630b514f03 100644
--- a/drivers/baseband/acc/rte_vrb_pmd.c
+++ b/drivers/baseband/acc/rte_vrb_pmd.c
@@ -1109,6 +1109,7 @@ vrb_queue_stop(struct rte_bbdev *dev, uint16_t queue_id)
 	dev->data->queues[queue_id].queue_stats.dequeue_err_count = 0;
 	dev->data->queues[queue_id].queue_stats.enqueue_warn_count = 0;
 	dev->data->queues[queue_id].queue_stats.dequeue_warn_count = 0;
+	dev->data->queues[queue_id].queue_stats.enqueue_depth_avail = 0;
 	return 0;
 }
 
@@ -2738,9 +2739,7 @@ vrb_enqueue_enc_cb(struct rte_bbdev_queue_data *q_data,
 
 	acc_dma_enqueue(q, i, &q_data->queue_stats);
 
-	/* Update stats */
-	q_data->queue_stats.enqueued_count += i;
-	q_data->queue_stats.enqueue_err_count += num - i;
+	acc_update_qstat_enqueue(q_data, i, num - i);
 	return i;
 }
 
@@ -2778,9 +2777,7 @@ vrb_enqueue_ldpc_enc_cb(struct rte_bbdev_queue_data *q_data,
 
 	acc_dma_enqueue(q, desc_idx, &q_data->queue_stats);
 
-	/* Update stats. */
-	q_data->queue_stats.enqueued_count += i;
-	q_data->queue_stats.enqueue_err_count += num - i;
+	acc_update_qstat_enqueue(q_data, i, num - i);
 
 	return i;
 }
@@ -2817,9 +2814,7 @@ vrb_enqueue_enc_tb(struct rte_bbdev_queue_data *q_data,
 
 	acc_dma_enqueue(q, enqueued_cbs, &q_data->queue_stats);
 
-	/* Update stats */
-	q_data->queue_stats.enqueued_count += i;
-	q_data->queue_stats.enqueue_err_count += num - i;
+	acc_update_qstat_enqueue(q_data, i, num - i);
 
 	return i;
 }
@@ -2864,9 +2859,7 @@ vrb_enqueue_ldpc_enc_tb(struct rte_bbdev_queue_data *q_data,
 
 	acc_dma_enqueue(q, enqueued_descs, &q_data->queue_stats);
 
-	/* Update stats. */
-	q_data->queue_stats.enqueued_count += i;
-	q_data->queue_stats.enqueue_err_count += num - i;
+	acc_update_qstat_enqueue(q_data, i, num - i);
 
 	return i;
 }
@@ -2926,9 +2919,7 @@ vrb_enqueue_dec_cb(struct rte_bbdev_queue_data *q_data,
 
 	acc_dma_enqueue(q, i, &q_data->queue_stats);
 
-	/* Update stats. */
-	q_data->queue_stats.enqueued_count += i;
-	q_data->queue_stats.enqueue_err_count += num - i;
+	acc_update_qstat_enqueue(q_data, i, num - i);
 
 	return i;
 }
@@ -2961,9 +2952,7 @@ vrb_enqueue_ldpc_dec_tb(struct rte_bbdev_queue_data *q_data,
 
 	acc_dma_enqueue(q, enqueued_cbs, &q_data->queue_stats);
 
-	/* Update stats. */
-	q_data->queue_stats.enqueued_count += i;
-	q_data->queue_stats.enqueue_err_count += num - i;
+	acc_update_qstat_enqueue(q_data, i, num - i);
 	return i;
 }
 
@@ -3004,9 +2993,7 @@ vrb_enqueue_ldpc_dec_cb(struct rte_bbdev_queue_data *q_data,
 
 	acc_dma_enqueue(q, i, &q_data->queue_stats);
 
-	/* Update stats. */
-	q_data->queue_stats.enqueued_count += i;
-	q_data->queue_stats.enqueue_err_count += num - i;
+	acc_update_qstat_enqueue(q_data, i, num - i);
 	return i;
 }
 
@@ -3041,9 +3028,7 @@ vrb_enqueue_dec_tb(struct rte_bbdev_queue_data *q_data,
 
 	acc_dma_enqueue(q, enqueued_cbs, &q_data->queue_stats);
 
-	/* Update stats */
-	q_data->queue_stats.enqueued_count += i;
-	q_data->queue_stats.enqueue_err_count += num - i;
+	acc_update_qstat_enqueue(q_data, i, num - i);
 
 	return i;
 }
@@ -3453,8 +3438,7 @@ vrb_dequeue_enc(struct rte_bbdev_queue_data *q_data,
 	q->aq_dequeued += aq_dequeued;
 	q->sw_ring_tail += dequeued_descs;
 
-	/* Update enqueue stats. */
-	q_data->queue_stats.dequeued_count += dequeued_ops;
+	acc_update_qstat_dequeue(q_data, dequeued_ops);
 
 	return dequeued_ops;
 }
@@ -3496,8 +3480,7 @@ vrb_dequeue_ldpc_enc(struct rte_bbdev_queue_data *q_data,
 	q->aq_dequeued += aq_dequeued;
 	q->sw_ring_tail += dequeued_descs;
 
-	/* Update enqueue stats. */
-	q_data->queue_stats.dequeued_count += dequeued_ops;
+	acc_update_qstat_dequeue(q_data, dequeued_ops);
 
 	return dequeued_ops;
 }
@@ -3535,8 +3518,7 @@ vrb_dequeue_dec(struct rte_bbdev_queue_data *q_data,
 	q->aq_dequeued += aq_dequeued;
 	q->sw_ring_tail += dequeued_cbs;
 
-	/* Update enqueue stats */
-	q_data->queue_stats.dequeued_count += i;
+	acc_update_qstat_dequeue(q_data, i);
 
 	return i;
 }
@@ -3575,8 +3557,7 @@ vrb_dequeue_ldpc_dec(struct rte_bbdev_queue_data *q_data,
 	q->aq_dequeued += aq_dequeued;
 	q->sw_ring_tail += dequeued_cbs;
 
-	/* Update enqueue stats. */
-	q_data->queue_stats.dequeued_count += i;
+	acc_update_qstat_dequeue(q_data, i);
 
 	return i;
 }
@@ -3782,9 +3763,7 @@ vrb_enqueue_fft(struct rte_bbdev_queue_data *q_data,
 
 	acc_dma_enqueue(q, i, &q_data->queue_stats);
 
-	/* Update stats */
-	q_data->queue_stats.enqueued_count += i;
-	q_data->queue_stats.enqueue_err_count += num - i;
+	acc_update_qstat_enqueue(q_data, i, num - i);
 	return i;
 }
 
@@ -3851,8 +3830,7 @@ vrb_dequeue_fft(struct rte_bbdev_queue_data *q_data,
 
 	q->aq_dequeued += aq_dequeued;
 	q->sw_ring_tail += dequeued_cbs;
-	/* Update enqueue stats. */
-	q_data->queue_stats.dequeued_count += i;
+	acc_update_qstat_dequeue(q_data, i);
 	return i;
 }
 
@@ -4106,9 +4084,7 @@ vrb2_enqueue_mldts(struct rte_bbdev_queue_data *q_data,
 
 	acc_dma_enqueue(q, enqueued_descs, &q_data->queue_stats);
 
-	/* Update stats. */
-	q_data->queue_stats.enqueued_count += i;
-	q_data->queue_stats.enqueue_err_count += num - i;
+	acc_update_qstat_enqueue(q_data, i, num - i);
 	return i;
 }
 
@@ -4207,8 +4183,9 @@ vrb2_dequeue_mldts(struct rte_bbdev_queue_data *q_data,
 
 	q->aq_dequeued += aq_dequeued;
 	q->sw_ring_tail += dequeued_cbs;
-	/* Update enqueue stats. */
-	q_data->queue_stats.dequeued_count += i;
+
+	acc_update_qstat_dequeue(q_data, i);
+
 	return i;
 }
 
-- 
2.34.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2 3/3] test/bbdev: update for queue stats
  2024-08-12 23:41 [PATCH v2 0/3] bbdev: sdditional queue stats Nicolas Chautru
  2024-08-12 23:41 ` [PATCH v2 1/3] bbdev: new queue stat for available enqueue depth Nicolas Chautru
  2024-08-12 23:42 ` [PATCH v2 2/3] baseband/acc: refactor queue status update Nicolas Chautru
@ 2024-08-12 23:42 ` Nicolas Chautru
  2024-09-10 15:32   ` Maxime Coquelin
  2024-08-13  7:22 ` [PATCH v2 0/3] bbdev: sdditional " Hemant Agrawal
  2024-09-13 13:50 ` Maxime Coquelin
  4 siblings, 1 reply; 11+ messages in thread
From: Nicolas Chautru @ 2024-08-12 23:42 UTC (permalink / raw)
  To: dev, maxime.coquelin
  Cc: hemant.agrawal, david.marchand, hernan.vargas, Nicolas Chautru

Update to include in test application the queue stats for the
enqueue_depth_avail counter.

Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
---
 app/test-bbdev/test_bbdev_perf.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c
index 3a94f15a30..259192c670 100644
--- a/app/test-bbdev/test_bbdev_perf.c
+++ b/app/test-bbdev/test_bbdev_perf.c
@@ -5816,6 +5816,7 @@ get_bbdev_queue_stats(uint16_t dev_id, uint16_t queue_id,
 	stats->enqueue_warn_count = q_stats->enqueue_warn_count;
 	stats->dequeue_warn_count = q_stats->dequeue_warn_count;
 	stats->acc_offload_cycles = q_stats->acc_offload_cycles;
+	stats->enqueue_depth_avail = q_stats->enqueue_depth_avail;
 
 	return 0;
 }
-- 
2.34.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/3] bbdev: sdditional queue stats
  2024-08-12 23:41 [PATCH v2 0/3] bbdev: sdditional queue stats Nicolas Chautru
                   ` (2 preceding siblings ...)
  2024-08-12 23:42 ` [PATCH v2 3/3] test/bbdev: update for queue stats Nicolas Chautru
@ 2024-08-13  7:22 ` Hemant Agrawal
  2024-09-13 13:50 ` Maxime Coquelin
  4 siblings, 0 replies; 11+ messages in thread
From: Hemant Agrawal @ 2024-08-13  7:22 UTC (permalink / raw)
  To: dev

Series-

Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>


On 13-08-2024 05:11, Nicolas Chautru wrote:
> v2: update to ABI doc suggested by Maxime.
>
>   These series include introducing a new paramter in the queue stat
> which can be used to monitor the number of available enqueue
> still possible.
> The acc PMD is then refactored to use a set of common function
> to update several queue status parameters including the new one.
> The application is also updated.
> Thanks
> Nic
>
> Nicolas Chautru (3):
>    bbdev: new queue stat for available enqueue depth
>    baseband/acc: refactor queue status update
>    test/bbdev: update for queue stats
>
>   app/test-bbdev/test_bbdev_perf.c       |  1 +
>   doc/guides/rel_notes/release_24_11.rst |  3 ++
>   drivers/baseband/acc/acc_common.h      | 18 ++++++++
>   drivers/baseband/acc/rte_acc100_pmd.c  | 45 ++++++-------------
>   drivers/baseband/acc/rte_vrb_pmd.c     | 61 ++++++++------------------
>   lib/bbdev/rte_bbdev.h                  |  2 +
>   6 files changed, 56 insertions(+), 74 deletions(-)
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 2/3] baseband/acc: refactor queue status update
  2024-08-12 23:42 ` [PATCH v2 2/3] baseband/acc: refactor queue status update Nicolas Chautru
@ 2024-08-13  7:24   ` Mattia Milani
  2024-08-13  7:31     ` Mattia Milani
  2024-09-10 15:26   ` Maxime Coquelin
  1 sibling, 1 reply; 11+ messages in thread
From: Mattia Milani @ 2024-08-13  7:24 UTC (permalink / raw)
  To: Nicolas Chautru, dev, maxime.coquelin
  Cc: hemant.agrawal, david.marchand, hernan.vargas

[-- Attachment #1: Type: text/plain, Size: 13928 bytes --]

Dear all,

I'm a DPDK newbie, but I hope anyway you are gonna consider my
comments or help me to understand the code a little bit better.

1) Aren't you updating the variable two times? for example, in 
'acc100_enqueue_enc_cb',
     you update both 'enqueued_count' and 'enqueue_err_count' and then 
you call
     'acc_update_qstat_enqueue' which does exactly the same thing but 
also updates 'enqueue_depth_avail'.

2) You reset the queue stats when '*_queue_stop' is called, wouldn't be 
better to reset the statistics when a queue is started? so that, if I 
want, I can still access the statistics of a stopped queue to see the 
counters.

All the best, Mattia

On 13/08/2024 01:42, Nicolas Chautru wrote:
> CAUTION: This is an external email. Please be very careful when clicking links or opening attachments. See the URL nok.it/ext for additional information.
>
>
>
> Introducing common function for queue stats update
> within the acc PMDs.
>
> Signed-off-by: Nicolas Chautru<nicolas.chautru@intel.com>
> ---
>   drivers/baseband/acc/acc_common.h     | 18 ++++++++
>   drivers/baseband/acc/rte_acc100_pmd.c | 45 ++++++--------------
>   drivers/baseband/acc/rte_vrb_pmd.c    | 61 +++++++++------------------
>   3 files changed, 50 insertions(+), 74 deletions(-)
>
> diff --git a/drivers/baseband/acc/acc_common.h b/drivers/baseband/acc/acc_common.h
> index e249f37e38..06a88360de 100644
> --- a/drivers/baseband/acc/acc_common.h
> +++ b/drivers/baseband/acc/acc_common.h
> @@ -1555,6 +1555,24 @@ acc_aq_avail(struct rte_bbdev_queue_data *q_data, uint16_t num_ops)
>          return aq_avail;
>   }
>
> +/* Update queue stats during enqueue. */
> +static inline void
> +acc_update_qstat_enqueue(struct rte_bbdev_queue_data *q_data,
> +               uint16_t enq_count, uint16_t enq_err_count)
> +{
> +       q_data->queue_stats.enqueued_count += enq_count;
> +       q_data->queue_stats.enqueue_err_count += enq_err_count;
> +       q_data->queue_stats.enqueue_depth_avail = acc_aq_avail(q_data, 0);
> +}
> +
> +/* Update queue stats during dequeue. */
> +static inline void
> +acc_update_qstat_dequeue(struct rte_bbdev_queue_data *q_data, uint16_t deq_count)
> +{
> +       q_data->queue_stats.dequeued_count += deq_count;
> +       q_data->queue_stats.enqueue_depth_avail = acc_aq_avail(q_data, 0);
> +}
> +
>   /* Calculates number of CBs in processed encoder TB based on 'r' and input
>    * length.
>    */
> diff --git a/drivers/baseband/acc/rte_acc100_pmd.c b/drivers/baseband/acc/rte_acc100_pmd.c
> index ab69350080..d2a0a36e12 100644
> --- a/drivers/baseband/acc/rte_acc100_pmd.c
> +++ b/drivers/baseband/acc/rte_acc100_pmd.c
> @@ -892,6 +892,7 @@ acc100_queue_stop(struct rte_bbdev *dev, uint16_t queue_id)
>          dev->data->queues[queue_id].queue_stats.dequeue_err_count = 0;
>          dev->data->queues[queue_id].queue_stats.enqueue_warn_count = 0;
>          dev->data->queues[queue_id].queue_stats.dequeue_warn_count = 0;
> +       dev->data->queues[queue_id].queue_stats.enqueue_depth_avail = 0;
>
>          return 0;
>   }
> @@ -3196,9 +3197,7 @@ acc100_enqueue_enc_cb(struct rte_bbdev_queue_data *q_data,
>
>          acc_dma_enqueue(q, i, &q_data->queue_stats);
>
> -       /* Update stats */
> -       q_data->queue_stats.enqueued_count += i;
> -       q_data->queue_stats.enqueue_err_count += num - i;
> +       acc_update_qstat_enqueue(q_data, i, num - i);
>          return i;
>   }
>
> @@ -3245,9 +3244,7 @@ acc100_enqueue_ldpc_enc_cb(struct rte_bbdev_queue_data *q_data,
>
>          acc_dma_enqueue(q, desc_idx, &q_data->queue_stats);
>
> -       /* Update stats */
> -       q_data->queue_stats.enqueued_count += i;
> -       q_data->queue_stats.enqueue_err_count += num - i;
> +       acc_update_qstat_enqueue(q_data, i, num - i);
>
>          return i;
>   }
> @@ -3284,9 +3281,7 @@ acc100_enqueue_enc_tb(struct rte_bbdev_queue_data *q_data,
>
>          acc_dma_enqueue(q, enqueued_cbs, &q_data->queue_stats);
>
> -       /* Update stats */
> -       q_data->queue_stats.enqueued_count += i;
> -       q_data->queue_stats.enqueue_err_count += num - i;
> +       acc_update_qstat_enqueue(q_data, i, num - i);
>
>          return i;
>   }
> @@ -3322,9 +3317,7 @@ acc100_enqueue_ldpc_enc_tb(struct rte_bbdev_queue_data *q_data,
>
>          acc_dma_enqueue(q, enqueued_descs, &q_data->queue_stats);
>
> -       /* Update stats. */
> -       q_data->queue_stats.enqueued_count += i;
> -       q_data->queue_stats.enqueue_err_count += num - i;
> +       acc_update_qstat_enqueue(q_data, i, num - i);
>
>          return i;
>   }
> @@ -3388,9 +3381,7 @@ acc100_enqueue_dec_cb(struct rte_bbdev_queue_data *q_data,
>
>          acc_dma_enqueue(q, i, &q_data->queue_stats);
>
> -       /* Update stats */
> -       q_data->queue_stats.enqueued_count += i;
> -       q_data->queue_stats.enqueue_err_count += num - i;
> +       acc_update_qstat_enqueue(q_data, i, num - i);
>
>          return i;
>   }
> @@ -3426,9 +3417,7 @@ acc100_enqueue_ldpc_dec_tb(struct rte_bbdev_queue_data *q_data,
>
>          acc_dma_enqueue(q, enqueued_cbs, &q_data->queue_stats);
>
> -       /* Update stats */
> -       q_data->queue_stats.enqueued_count += i;
> -       q_data->queue_stats.enqueue_err_count += num - i;
> +       acc_update_qstat_enqueue(q_data, i, num - i);
>          return i;
>   }
>
> @@ -3468,9 +3457,7 @@ acc100_enqueue_ldpc_dec_cb(struct rte_bbdev_queue_data *q_data,
>
>          acc_dma_enqueue(q, i, &q_data->queue_stats);
>
> -       /* Update stats */
> -       q_data->queue_stats.enqueued_count += i;
> -       q_data->queue_stats.enqueue_err_count += num - i;
> +       acc_update_qstat_enqueue(q_data, i, num - i);
>          return i;
>   }
>
> @@ -3505,9 +3492,7 @@ acc100_enqueue_dec_tb(struct rte_bbdev_queue_data *q_data,
>
>          acc_dma_enqueue(q, enqueued_cbs, &q_data->queue_stats);
>
> -       /* Update stats */
> -       q_data->queue_stats.enqueued_count += i;
> -       q_data->queue_stats.enqueue_err_count += num - i;
> +       acc_update_qstat_enqueue(q_data, i, num - i);
>
>          return i;
>   }
> @@ -3897,8 +3882,7 @@ acc100_dequeue_enc(struct rte_bbdev_queue_data *q_data,
>          q->aq_dequeued += aq_dequeued;
>          q->sw_ring_tail += dequeued_descs;
>
> -       /* Update enqueue stats */
> -       q_data->queue_stats.dequeued_count += dequeued_ops;
> +       acc_update_qstat_dequeue(q_data, dequeued_ops);
>
>          return dequeued_ops;
>   }
> @@ -3940,8 +3924,7 @@ acc100_dequeue_ldpc_enc(struct rte_bbdev_queue_data *q_data,
>          q->aq_dequeued += aq_dequeued;
>          q->sw_ring_tail += dequeued_descs;
>
> -       /* Update enqueue stats */
> -       q_data->queue_stats.dequeued_count += dequeued_ops;
> +       acc_update_qstat_dequeue(q_data, dequeued_ops);
>
>          return dequeued_ops;
>   }
> @@ -3986,8 +3969,7 @@ acc100_dequeue_dec(struct rte_bbdev_queue_data *q_data,
>          q->aq_dequeued += aq_dequeued;
>          q->sw_ring_tail += dequeued_cbs;
>
> -       /* Update enqueue stats */
> -       q_data->queue_stats.dequeued_count += i;
> +       acc_update_qstat_dequeue(q_data, i);
>
>          return i;
>   }
> @@ -4033,8 +4015,7 @@ acc100_dequeue_ldpc_dec(struct rte_bbdev_queue_data *q_data,
>          q->aq_dequeued += aq_dequeued;
>          q->sw_ring_tail += dequeued_cbs;
>
> -       /* Update enqueue stats */
> -       q_data->queue_stats.dequeued_count += i;
> +       acc_update_qstat_dequeue(q_data, i);
>
>          return i;
>   }
> diff --git a/drivers/baseband/acc/rte_vrb_pmd.c b/drivers/baseband/acc/rte_vrb_pmd.c
> index 585dc49bd6..630b514f03 100644
> --- a/drivers/baseband/acc/rte_vrb_pmd.c
> +++ b/drivers/baseband/acc/rte_vrb_pmd.c
> @@ -1109,6 +1109,7 @@ vrb_queue_stop(struct rte_bbdev *dev, uint16_t queue_id)
>          dev->data->queues[queue_id].queue_stats.dequeue_err_count = 0;
>          dev->data->queues[queue_id].queue_stats.enqueue_warn_count = 0;
>          dev->data->queues[queue_id].queue_stats.dequeue_warn_count = 0;
> +       dev->data->queues[queue_id].queue_stats.enqueue_depth_avail = 0;
>          return 0;
>   }
>
> @@ -2738,9 +2739,7 @@ vrb_enqueue_enc_cb(struct rte_bbdev_queue_data *q_data,
>
>          acc_dma_enqueue(q, i, &q_data->queue_stats);
>
> -       /* Update stats */
> -       q_data->queue_stats.enqueued_count += i;
> -       q_data->queue_stats.enqueue_err_count += num - i;
> +       acc_update_qstat_enqueue(q_data, i, num - i);
>          return i;
>   }
>
> @@ -2778,9 +2777,7 @@ vrb_enqueue_ldpc_enc_cb(struct rte_bbdev_queue_data *q_data,
>
>          acc_dma_enqueue(q, desc_idx, &q_data->queue_stats);
>
> -       /* Update stats. */
> -       q_data->queue_stats.enqueued_count += i;
> -       q_data->queue_stats.enqueue_err_count += num - i;
> +       acc_update_qstat_enqueue(q_data, i, num - i);
>
>          return i;
>   }
> @@ -2817,9 +2814,7 @@ vrb_enqueue_enc_tb(struct rte_bbdev_queue_data *q_data,
>
>          acc_dma_enqueue(q, enqueued_cbs, &q_data->queue_stats);
>
> -       /* Update stats */
> -       q_data->queue_stats.enqueued_count += i;
> -       q_data->queue_stats.enqueue_err_count += num - i;
> +       acc_update_qstat_enqueue(q_data, i, num - i);
>
>          return i;
>   }
> @@ -2864,9 +2859,7 @@ vrb_enqueue_ldpc_enc_tb(struct rte_bbdev_queue_data *q_data,
>
>          acc_dma_enqueue(q, enqueued_descs, &q_data->queue_stats);
>
> -       /* Update stats. */
> -       q_data->queue_stats.enqueued_count += i;
> -       q_data->queue_stats.enqueue_err_count += num - i;
> +       acc_update_qstat_enqueue(q_data, i, num - i);
>
>          return i;
>   }
> @@ -2926,9 +2919,7 @@ vrb_enqueue_dec_cb(struct rte_bbdev_queue_data *q_data,
>
>          acc_dma_enqueue(q, i, &q_data->queue_stats);
>
> -       /* Update stats. */
> -       q_data->queue_stats.enqueued_count += i;
> -       q_data->queue_stats.enqueue_err_count += num - i;
> +       acc_update_qstat_enqueue(q_data, i, num - i);
>
>          return i;
>   }
> @@ -2961,9 +2952,7 @@ vrb_enqueue_ldpc_dec_tb(struct rte_bbdev_queue_data *q_data,
>
>          acc_dma_enqueue(q, enqueued_cbs, &q_data->queue_stats);
>
> -       /* Update stats. */
> -       q_data->queue_stats.enqueued_count += i;
> -       q_data->queue_stats.enqueue_err_count += num - i;
> +       acc_update_qstat_enqueue(q_data, i, num - i);
>          return i;
>   }
>
> @@ -3004,9 +2993,7 @@ vrb_enqueue_ldpc_dec_cb(struct rte_bbdev_queue_data *q_data,
>
>          acc_dma_enqueue(q, i, &q_data->queue_stats);
>
> -       /* Update stats. */
> -       q_data->queue_stats.enqueued_count += i;
> -       q_data->queue_stats.enqueue_err_count += num - i;
> +       acc_update_qstat_enqueue(q_data, i, num - i);
>          return i;
>   }
>
> @@ -3041,9 +3028,7 @@ vrb_enqueue_dec_tb(struct rte_bbdev_queue_data *q_data,
>
>          acc_dma_enqueue(q, enqueued_cbs, &q_data->queue_stats);
>
> -       /* Update stats */
> -       q_data->queue_stats.enqueued_count += i;
> -       q_data->queue_stats.enqueue_err_count += num - i;
> +       acc_update_qstat_enqueue(q_data, i, num - i);
>
>          return i;
>   }
> @@ -3453,8 +3438,7 @@ vrb_dequeue_enc(struct rte_bbdev_queue_data *q_data,
>          q->aq_dequeued += aq_dequeued;
>          q->sw_ring_tail += dequeued_descs;
>
> -       /* Update enqueue stats. */
> -       q_data->queue_stats.dequeued_count += dequeued_ops;
> +       acc_update_qstat_dequeue(q_data, dequeued_ops);
>
>          return dequeued_ops;
>   }
> @@ -3496,8 +3480,7 @@ vrb_dequeue_ldpc_enc(struct rte_bbdev_queue_data *q_data,
>          q->aq_dequeued += aq_dequeued;
>          q->sw_ring_tail += dequeued_descs;
>
> -       /* Update enqueue stats. */
> -       q_data->queue_stats.dequeued_count += dequeued_ops;
> +       acc_update_qstat_dequeue(q_data, dequeued_ops);
>
>          return dequeued_ops;
>   }
> @@ -3535,8 +3518,7 @@ vrb_dequeue_dec(struct rte_bbdev_queue_data *q_data,
>          q->aq_dequeued += aq_dequeued;
>          q->sw_ring_tail += dequeued_cbs;
>
> -       /* Update enqueue stats */
> -       q_data->queue_stats.dequeued_count += i;
> +       acc_update_qstat_dequeue(q_data, i);
>
>          return i;
>   }
> @@ -3575,8 +3557,7 @@ vrb_dequeue_ldpc_dec(struct rte_bbdev_queue_data *q_data,
>          q->aq_dequeued += aq_dequeued;
>          q->sw_ring_tail += dequeued_cbs;
>
> -       /* Update enqueue stats. */
> -       q_data->queue_stats.dequeued_count += i;
> +       acc_update_qstat_dequeue(q_data, i);
>
>          return i;
>   }
> @@ -3782,9 +3763,7 @@ vrb_enqueue_fft(struct rte_bbdev_queue_data *q_data,
>
>          acc_dma_enqueue(q, i, &q_data->queue_stats);
>
> -       /* Update stats */
> -       q_data->queue_stats.enqueued_count += i;
> -       q_data->queue_stats.enqueue_err_count += num - i;
> +       acc_update_qstat_enqueue(q_data, i, num - i);
>          return i;
>   }
>
> @@ -3851,8 +3830,7 @@ vrb_dequeue_fft(struct rte_bbdev_queue_data *q_data,
>
>          q->aq_dequeued += aq_dequeued;
>          q->sw_ring_tail += dequeued_cbs;
> -       /* Update enqueue stats. */
> -       q_data->queue_stats.dequeued_count += i;
> +       acc_update_qstat_dequeue(q_data, i);
>          return i;
>   }
>
> @@ -4106,9 +4084,7 @@ vrb2_enqueue_mldts(struct rte_bbdev_queue_data *q_data,
>
>          acc_dma_enqueue(q, enqueued_descs, &q_data->queue_stats);
>
> -       /* Update stats. */
> -       q_data->queue_stats.enqueued_count += i;
> -       q_data->queue_stats.enqueue_err_count += num - i;
> +       acc_update_qstat_enqueue(q_data, i, num - i);
>          return i;
>   }
>
> @@ -4207,8 +4183,9 @@ vrb2_dequeue_mldts(struct rte_bbdev_queue_data *q_data,
>
>          q->aq_dequeued += aq_dequeued;
>          q->sw_ring_tail += dequeued_cbs;
> -       /* Update enqueue stats. */
> -       q_data->queue_stats.dequeued_count += i;
> +
> +       acc_update_qstat_dequeue(q_data, i);
> +
>          return i;
>   }
>
> --
> 2.34.1
>

[-- Attachment #2: Type: text/html, Size: 14271 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 2/3] baseband/acc: refactor queue status update
  2024-08-13  7:24   ` Mattia Milani
@ 2024-08-13  7:31     ` Mattia Milani
  0 siblings, 0 replies; 11+ messages in thread
From: Mattia Milani @ 2024-08-13  7:31 UTC (permalink / raw)
  To: dev

[-- Attachment #1: Type: text/plain, Size: 14618 bytes --]

My bad, please ignore the first comment, I've confused the - and + on 
the left side.
sorry for the misunderstanding.
For the second I still think would make more sense to reset the 
statistics at
when a queue is started rather than stopped.

On 13/08/2024 09:24, Mattia Milani wrote:
>
> Dear all,
>
> I'm a DPDK newbie, but I hope anyway you are gonna consider my
> comments or help me to understand the code a little bit better.
>
> 1) Aren't you updating the variable two times? for example, in 
> 'acc100_enqueue_enc_cb',
>     you update both 'enqueued_count' and 'enqueue_err_count' and then 
> you call
>     'acc_update_qstat_enqueue' which does exactly the same thing but 
> also updates 'enqueue_depth_avail'.
>
> 2) You reset the queue stats when '*_queue_stop' is called, wouldn't 
> be better to reset the statistics when a queue is started? so that, if 
> I want, I can still access the statistics of a stopped queue to see 
> the counters.
>
> All the best, Mattia
>
> On 13/08/2024 01:42, Nicolas Chautru wrote:
>> CAUTION: This is an external email. Please be very careful when clicking links or opening attachments. See the URL nok.it/ext for additional information.
>>
>>
>>
>> Introducing common function for queue stats update
>> within the acc PMDs.
>>
>> Signed-off-by: Nicolas Chautru<nicolas.chautru@intel.com>
>> ---
>>   drivers/baseband/acc/acc_common.h     | 18 ++++++++
>>   drivers/baseband/acc/rte_acc100_pmd.c | 45 ++++++--------------
>>   drivers/baseband/acc/rte_vrb_pmd.c    | 61 +++++++++------------------
>>   3 files changed, 50 insertions(+), 74 deletions(-)
>>
>> diff --git a/drivers/baseband/acc/acc_common.h b/drivers/baseband/acc/acc_common.h
>> index e249f37e38..06a88360de 100644
>> --- a/drivers/baseband/acc/acc_common.h
>> +++ b/drivers/baseband/acc/acc_common.h
>> @@ -1555,6 +1555,24 @@ acc_aq_avail(struct rte_bbdev_queue_data *q_data, uint16_t num_ops)
>>          return aq_avail;
>>   }
>>
>> +/* Update queue stats during enqueue. */
>> +static inline void
>> +acc_update_qstat_enqueue(struct rte_bbdev_queue_data *q_data,
>> +               uint16_t enq_count, uint16_t enq_err_count)
>> +{
>> +       q_data->queue_stats.enqueued_count += enq_count;
>> +       q_data->queue_stats.enqueue_err_count += enq_err_count;
>> +       q_data->queue_stats.enqueue_depth_avail = acc_aq_avail(q_data, 0);
>> +}
>> +
>> +/* Update queue stats during dequeue. */
>> +static inline void
>> +acc_update_qstat_dequeue(struct rte_bbdev_queue_data *q_data, uint16_t deq_count)
>> +{
>> +       q_data->queue_stats.dequeued_count += deq_count;
>> +       q_data->queue_stats.enqueue_depth_avail = acc_aq_avail(q_data, 0);
>> +}
>> +
>>   /* Calculates number of CBs in processed encoder TB based on 'r' and input
>>    * length.
>>    */
>> diff --git a/drivers/baseband/acc/rte_acc100_pmd.c b/drivers/baseband/acc/rte_acc100_pmd.c
>> index ab69350080..d2a0a36e12 100644
>> --- a/drivers/baseband/acc/rte_acc100_pmd.c
>> +++ b/drivers/baseband/acc/rte_acc100_pmd.c
>> @@ -892,6 +892,7 @@ acc100_queue_stop(struct rte_bbdev *dev, uint16_t queue_id)
>>          dev->data->queues[queue_id].queue_stats.dequeue_err_count = 0;
>>          dev->data->queues[queue_id].queue_stats.enqueue_warn_count = 0;
>>          dev->data->queues[queue_id].queue_stats.dequeue_warn_count = 0;
>> +       dev->data->queues[queue_id].queue_stats.enqueue_depth_avail = 0;
>>
>>          return 0;
>>   }
>> @@ -3196,9 +3197,7 @@ acc100_enqueue_enc_cb(struct rte_bbdev_queue_data *q_data,
>>
>>          acc_dma_enqueue(q, i, &q_data->queue_stats);
>>
>> -       /* Update stats */
>> -       q_data->queue_stats.enqueued_count += i;
>> -       q_data->queue_stats.enqueue_err_count += num - i;
>> +       acc_update_qstat_enqueue(q_data, i, num - i);
>>          return i;
>>   }
>>
>> @@ -3245,9 +3244,7 @@ acc100_enqueue_ldpc_enc_cb(struct rte_bbdev_queue_data *q_data,
>>
>>          acc_dma_enqueue(q, desc_idx, &q_data->queue_stats);
>>
>> -       /* Update stats */
>> -       q_data->queue_stats.enqueued_count += i;
>> -       q_data->queue_stats.enqueue_err_count += num - i;
>> +       acc_update_qstat_enqueue(q_data, i, num - i);
>>
>>          return i;
>>   }
>> @@ -3284,9 +3281,7 @@ acc100_enqueue_enc_tb(struct rte_bbdev_queue_data *q_data,
>>
>>          acc_dma_enqueue(q, enqueued_cbs, &q_data->queue_stats);
>>
>> -       /* Update stats */
>> -       q_data->queue_stats.enqueued_count += i;
>> -       q_data->queue_stats.enqueue_err_count += num - i;
>> +       acc_update_qstat_enqueue(q_data, i, num - i);
>>
>>          return i;
>>   }
>> @@ -3322,9 +3317,7 @@ acc100_enqueue_ldpc_enc_tb(struct rte_bbdev_queue_data *q_data,
>>
>>          acc_dma_enqueue(q, enqueued_descs, &q_data->queue_stats);
>>
>> -       /* Update stats. */
>> -       q_data->queue_stats.enqueued_count += i;
>> -       q_data->queue_stats.enqueue_err_count += num - i;
>> +       acc_update_qstat_enqueue(q_data, i, num - i);
>>
>>          return i;
>>   }
>> @@ -3388,9 +3381,7 @@ acc100_enqueue_dec_cb(struct rte_bbdev_queue_data *q_data,
>>
>>          acc_dma_enqueue(q, i, &q_data->queue_stats);
>>
>> -       /* Update stats */
>> -       q_data->queue_stats.enqueued_count += i;
>> -       q_data->queue_stats.enqueue_err_count += num - i;
>> +       acc_update_qstat_enqueue(q_data, i, num - i);
>>
>>          return i;
>>   }
>> @@ -3426,9 +3417,7 @@ acc100_enqueue_ldpc_dec_tb(struct rte_bbdev_queue_data *q_data,
>>
>>          acc_dma_enqueue(q, enqueued_cbs, &q_data->queue_stats);
>>
>> -       /* Update stats */
>> -       q_data->queue_stats.enqueued_count += i;
>> -       q_data->queue_stats.enqueue_err_count += num - i;
>> +       acc_update_qstat_enqueue(q_data, i, num - i);
>>          return i;
>>   }
>>
>> @@ -3468,9 +3457,7 @@ acc100_enqueue_ldpc_dec_cb(struct rte_bbdev_queue_data *q_data,
>>
>>          acc_dma_enqueue(q, i, &q_data->queue_stats);
>>
>> -       /* Update stats */
>> -       q_data->queue_stats.enqueued_count += i;
>> -       q_data->queue_stats.enqueue_err_count += num - i;
>> +       acc_update_qstat_enqueue(q_data, i, num - i);
>>          return i;
>>   }
>>
>> @@ -3505,9 +3492,7 @@ acc100_enqueue_dec_tb(struct rte_bbdev_queue_data *q_data,
>>
>>          acc_dma_enqueue(q, enqueued_cbs, &q_data->queue_stats);
>>
>> -       /* Update stats */
>> -       q_data->queue_stats.enqueued_count += i;
>> -       q_data->queue_stats.enqueue_err_count += num - i;
>> +       acc_update_qstat_enqueue(q_data, i, num - i);
>>
>>          return i;
>>   }
>> @@ -3897,8 +3882,7 @@ acc100_dequeue_enc(struct rte_bbdev_queue_data *q_data,
>>          q->aq_dequeued += aq_dequeued;
>>          q->sw_ring_tail += dequeued_descs;
>>
>> -       /* Update enqueue stats */
>> -       q_data->queue_stats.dequeued_count += dequeued_ops;
>> +       acc_update_qstat_dequeue(q_data, dequeued_ops);
>>
>>          return dequeued_ops;
>>   }
>> @@ -3940,8 +3924,7 @@ acc100_dequeue_ldpc_enc(struct rte_bbdev_queue_data *q_data,
>>          q->aq_dequeued += aq_dequeued;
>>          q->sw_ring_tail += dequeued_descs;
>>
>> -       /* Update enqueue stats */
>> -       q_data->queue_stats.dequeued_count += dequeued_ops;
>> +       acc_update_qstat_dequeue(q_data, dequeued_ops);
>>
>>          return dequeued_ops;
>>   }
>> @@ -3986,8 +3969,7 @@ acc100_dequeue_dec(struct rte_bbdev_queue_data *q_data,
>>          q->aq_dequeued += aq_dequeued;
>>          q->sw_ring_tail += dequeued_cbs;
>>
>> -       /* Update enqueue stats */
>> -       q_data->queue_stats.dequeued_count += i;
>> +       acc_update_qstat_dequeue(q_data, i);
>>
>>          return i;
>>   }
>> @@ -4033,8 +4015,7 @@ acc100_dequeue_ldpc_dec(struct rte_bbdev_queue_data *q_data,
>>          q->aq_dequeued += aq_dequeued;
>>          q->sw_ring_tail += dequeued_cbs;
>>
>> -       /* Update enqueue stats */
>> -       q_data->queue_stats.dequeued_count += i;
>> +       acc_update_qstat_dequeue(q_data, i);
>>
>>          return i;
>>   }
>> diff --git a/drivers/baseband/acc/rte_vrb_pmd.c b/drivers/baseband/acc/rte_vrb_pmd.c
>> index 585dc49bd6..630b514f03 100644
>> --- a/drivers/baseband/acc/rte_vrb_pmd.c
>> +++ b/drivers/baseband/acc/rte_vrb_pmd.c
>> @@ -1109,6 +1109,7 @@ vrb_queue_stop(struct rte_bbdev *dev, uint16_t queue_id)
>>          dev->data->queues[queue_id].queue_stats.dequeue_err_count = 0;
>>          dev->data->queues[queue_id].queue_stats.enqueue_warn_count = 0;
>>          dev->data->queues[queue_id].queue_stats.dequeue_warn_count = 0;
>> +       dev->data->queues[queue_id].queue_stats.enqueue_depth_avail = 0;
>>          return 0;
>>   }
>>
>> @@ -2738,9 +2739,7 @@ vrb_enqueue_enc_cb(struct rte_bbdev_queue_data *q_data,
>>
>>          acc_dma_enqueue(q, i, &q_data->queue_stats);
>>
>> -       /* Update stats */
>> -       q_data->queue_stats.enqueued_count += i;
>> -       q_data->queue_stats.enqueue_err_count += num - i;
>> +       acc_update_qstat_enqueue(q_data, i, num - i);
>>          return i;
>>   }
>>
>> @@ -2778,9 +2777,7 @@ vrb_enqueue_ldpc_enc_cb(struct rte_bbdev_queue_data *q_data,
>>
>>          acc_dma_enqueue(q, desc_idx, &q_data->queue_stats);
>>
>> -       /* Update stats. */
>> -       q_data->queue_stats.enqueued_count += i;
>> -       q_data->queue_stats.enqueue_err_count += num - i;
>> +       acc_update_qstat_enqueue(q_data, i, num - i);
>>
>>          return i;
>>   }
>> @@ -2817,9 +2814,7 @@ vrb_enqueue_enc_tb(struct rte_bbdev_queue_data *q_data,
>>
>>          acc_dma_enqueue(q, enqueued_cbs, &q_data->queue_stats);
>>
>> -       /* Update stats */
>> -       q_data->queue_stats.enqueued_count += i;
>> -       q_data->queue_stats.enqueue_err_count += num - i;
>> +       acc_update_qstat_enqueue(q_data, i, num - i);
>>
>>          return i;
>>   }
>> @@ -2864,9 +2859,7 @@ vrb_enqueue_ldpc_enc_tb(struct rte_bbdev_queue_data *q_data,
>>
>>          acc_dma_enqueue(q, enqueued_descs, &q_data->queue_stats);
>>
>> -       /* Update stats. */
>> -       q_data->queue_stats.enqueued_count += i;
>> -       q_data->queue_stats.enqueue_err_count += num - i;
>> +       acc_update_qstat_enqueue(q_data, i, num - i);
>>
>>          return i;
>>   }
>> @@ -2926,9 +2919,7 @@ vrb_enqueue_dec_cb(struct rte_bbdev_queue_data *q_data,
>>
>>          acc_dma_enqueue(q, i, &q_data->queue_stats);
>>
>> -       /* Update stats. */
>> -       q_data->queue_stats.enqueued_count += i;
>> -       q_data->queue_stats.enqueue_err_count += num - i;
>> +       acc_update_qstat_enqueue(q_data, i, num - i);
>>
>>          return i;
>>   }
>> @@ -2961,9 +2952,7 @@ vrb_enqueue_ldpc_dec_tb(struct rte_bbdev_queue_data *q_data,
>>
>>          acc_dma_enqueue(q, enqueued_cbs, &q_data->queue_stats);
>>
>> -       /* Update stats. */
>> -       q_data->queue_stats.enqueued_count += i;
>> -       q_data->queue_stats.enqueue_err_count += num - i;
>> +       acc_update_qstat_enqueue(q_data, i, num - i);
>>          return i;
>>   }
>>
>> @@ -3004,9 +2993,7 @@ vrb_enqueue_ldpc_dec_cb(struct rte_bbdev_queue_data *q_data,
>>
>>          acc_dma_enqueue(q, i, &q_data->queue_stats);
>>
>> -       /* Update stats. */
>> -       q_data->queue_stats.enqueued_count += i;
>> -       q_data->queue_stats.enqueue_err_count += num - i;
>> +       acc_update_qstat_enqueue(q_data, i, num - i);
>>          return i;
>>   }
>>
>> @@ -3041,9 +3028,7 @@ vrb_enqueue_dec_tb(struct rte_bbdev_queue_data *q_data,
>>
>>          acc_dma_enqueue(q, enqueued_cbs, &q_data->queue_stats);
>>
>> -       /* Update stats */
>> -       q_data->queue_stats.enqueued_count += i;
>> -       q_data->queue_stats.enqueue_err_count += num - i;
>> +       acc_update_qstat_enqueue(q_data, i, num - i);
>>
>>          return i;
>>   }
>> @@ -3453,8 +3438,7 @@ vrb_dequeue_enc(struct rte_bbdev_queue_data *q_data,
>>          q->aq_dequeued += aq_dequeued;
>>          q->sw_ring_tail += dequeued_descs;
>>
>> -       /* Update enqueue stats. */
>> -       q_data->queue_stats.dequeued_count += dequeued_ops;
>> +       acc_update_qstat_dequeue(q_data, dequeued_ops);
>>
>>          return dequeued_ops;
>>   }
>> @@ -3496,8 +3480,7 @@ vrb_dequeue_ldpc_enc(struct rte_bbdev_queue_data *q_data,
>>          q->aq_dequeued += aq_dequeued;
>>          q->sw_ring_tail += dequeued_descs;
>>
>> -       /* Update enqueue stats. */
>> -       q_data->queue_stats.dequeued_count += dequeued_ops;
>> +       acc_update_qstat_dequeue(q_data, dequeued_ops);
>>
>>          return dequeued_ops;
>>   }
>> @@ -3535,8 +3518,7 @@ vrb_dequeue_dec(struct rte_bbdev_queue_data *q_data,
>>          q->aq_dequeued += aq_dequeued;
>>          q->sw_ring_tail += dequeued_cbs;
>>
>> -       /* Update enqueue stats */
>> -       q_data->queue_stats.dequeued_count += i;
>> +       acc_update_qstat_dequeue(q_data, i);
>>
>>          return i;
>>   }
>> @@ -3575,8 +3557,7 @@ vrb_dequeue_ldpc_dec(struct rte_bbdev_queue_data *q_data,
>>          q->aq_dequeued += aq_dequeued;
>>          q->sw_ring_tail += dequeued_cbs;
>>
>> -       /* Update enqueue stats. */
>> -       q_data->queue_stats.dequeued_count += i;
>> +       acc_update_qstat_dequeue(q_data, i);
>>
>>          return i;
>>   }
>> @@ -3782,9 +3763,7 @@ vrb_enqueue_fft(struct rte_bbdev_queue_data *q_data,
>>
>>          acc_dma_enqueue(q, i, &q_data->queue_stats);
>>
>> -       /* Update stats */
>> -       q_data->queue_stats.enqueued_count += i;
>> -       q_data->queue_stats.enqueue_err_count += num - i;
>> +       acc_update_qstat_enqueue(q_data, i, num - i);
>>          return i;
>>   }
>>
>> @@ -3851,8 +3830,7 @@ vrb_dequeue_fft(struct rte_bbdev_queue_data *q_data,
>>
>>          q->aq_dequeued += aq_dequeued;
>>          q->sw_ring_tail += dequeued_cbs;
>> -       /* Update enqueue stats. */
>> -       q_data->queue_stats.dequeued_count += i;
>> +       acc_update_qstat_dequeue(q_data, i);
>>          return i;
>>   }
>>
>> @@ -4106,9 +4084,7 @@ vrb2_enqueue_mldts(struct rte_bbdev_queue_data *q_data,
>>
>>          acc_dma_enqueue(q, enqueued_descs, &q_data->queue_stats);
>>
>> -       /* Update stats. */
>> -       q_data->queue_stats.enqueued_count += i;
>> -       q_data->queue_stats.enqueue_err_count += num - i;
>> +       acc_update_qstat_enqueue(q_data, i, num - i);
>>          return i;
>>   }
>>
>> @@ -4207,8 +4183,9 @@ vrb2_dequeue_mldts(struct rte_bbdev_queue_data *q_data,
>>
>>          q->aq_dequeued += aq_dequeued;
>>          q->sw_ring_tail += dequeued_cbs;
>> -       /* Update enqueue stats. */
>> -       q_data->queue_stats.dequeued_count += i;
>> +
>> +       acc_update_qstat_dequeue(q_data, i);
>> +
>>          return i;
>>   }
>>
>> --
>> 2.34.1
>>

[-- Attachment #2: Type: text/html, Size: 14836 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/3] bbdev: new queue stat for available enqueue depth
  2024-08-12 23:41 ` [PATCH v2 1/3] bbdev: new queue stat for available enqueue depth Nicolas Chautru
@ 2024-09-10 15:16   ` Maxime Coquelin
  0 siblings, 0 replies; 11+ messages in thread
From: Maxime Coquelin @ 2024-09-10 15:16 UTC (permalink / raw)
  To: Nicolas Chautru, dev; +Cc: hemant.agrawal, david.marchand, hernan.vargas



On 8/13/24 01:41, Nicolas Chautru wrote:
> Capturing additional queue stats counter for the
> depth of enqueue batch still available on the given
> queue. This can help application to monitor that depth
> at run time.
> 
> Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
> ---
>   doc/guides/rel_notes/release_24_11.rst | 3 +++
>   lib/bbdev/rte_bbdev.h                  | 2 ++
>   2 files changed, 5 insertions(+)
> 
> diff --git a/doc/guides/rel_notes/release_24_11.rst b/doc/guides/rel_notes/release_24_11.rst
> index 0ff70d9057..a45b9b2dc6 100644
> --- a/doc/guides/rel_notes/release_24_11.rst
> +++ b/doc/guides/rel_notes/release_24_11.rst
> @@ -88,6 +88,9 @@ API Changes
>   ABI Changes
>   -----------
>   
> +  * bbdev: Structure ``rte_bbdev_stats`` was updated to add new parameter
> +    to optionally report number of enqueue batch available ``enqueue_depth_avail``.
> +
>   .. This section should contain ABI changes. Sample format:
>   
>      * sample: Add a short 1-2 sentence description of the ABI change
> diff --git a/lib/bbdev/rte_bbdev.h b/lib/bbdev/rte_bbdev.h
> index 0cbfdd1c95..25514c58ac 100644
> --- a/lib/bbdev/rte_bbdev.h
> +++ b/lib/bbdev/rte_bbdev.h
> @@ -283,6 +283,8 @@ struct rte_bbdev_stats {
>   	 *     bbdev operation
>   	 */
>   	uint64_t acc_offload_cycles;
> +	/** Available number of enqueue batch on that queue. */
> +	uint16_t enqueue_depth_avail;
>   };
>   
>   /**

Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

Thanks,
Maxime


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 2/3] baseband/acc: refactor queue status update
  2024-08-12 23:42 ` [PATCH v2 2/3] baseband/acc: refactor queue status update Nicolas Chautru
  2024-08-13  7:24   ` Mattia Milani
@ 2024-09-10 15:26   ` Maxime Coquelin
  1 sibling, 0 replies; 11+ messages in thread
From: Maxime Coquelin @ 2024-09-10 15:26 UTC (permalink / raw)
  To: Nicolas Chautru, dev; +Cc: hemant.agrawal, david.marchand, hernan.vargas



On 8/13/24 01:42, Nicolas Chautru wrote:
> Introducing common function for queue stats update
> within the acc PMDs.
> 
> Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
> ---
>   drivers/baseband/acc/acc_common.h     | 18 ++++++++
>   drivers/baseband/acc/rte_acc100_pmd.c | 45 ++++++--------------
>   drivers/baseband/acc/rte_vrb_pmd.c    | 61 +++++++++------------------
>   3 files changed, 50 insertions(+), 74 deletions(-)
> 

Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

Thanks,
Maxime



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 3/3] test/bbdev: update for queue stats
  2024-08-12 23:42 ` [PATCH v2 3/3] test/bbdev: update for queue stats Nicolas Chautru
@ 2024-09-10 15:32   ` Maxime Coquelin
  0 siblings, 0 replies; 11+ messages in thread
From: Maxime Coquelin @ 2024-09-10 15:32 UTC (permalink / raw)
  To: Nicolas Chautru, dev; +Cc: hemant.agrawal, david.marchand, hernan.vargas



On 8/13/24 01:42, Nicolas Chautru wrote:
> Update to include in test application the queue stats for the
> enqueue_depth_avail counter.
> 
> Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
> ---
>   app/test-bbdev/test_bbdev_perf.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c
> index 3a94f15a30..259192c670 100644
> --- a/app/test-bbdev/test_bbdev_perf.c
> +++ b/app/test-bbdev/test_bbdev_perf.c
> @@ -5816,6 +5816,7 @@ get_bbdev_queue_stats(uint16_t dev_id, uint16_t queue_id,
>   	stats->enqueue_warn_count = q_stats->enqueue_warn_count;
>   	stats->dequeue_warn_count = q_stats->dequeue_warn_count;
>   	stats->acc_offload_cycles = q_stats->acc_offload_cycles;
> +	stats->enqueue_depth_avail = q_stats->enqueue_depth_avail;
>   
>   	return 0;
>   }

Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

Thanks,
Maxime


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/3] bbdev: sdditional queue stats
  2024-08-12 23:41 [PATCH v2 0/3] bbdev: sdditional queue stats Nicolas Chautru
                   ` (3 preceding siblings ...)
  2024-08-13  7:22 ` [PATCH v2 0/3] bbdev: sdditional " Hemant Agrawal
@ 2024-09-13 13:50 ` Maxime Coquelin
  4 siblings, 0 replies; 11+ messages in thread
From: Maxime Coquelin @ 2024-09-13 13:50 UTC (permalink / raw)
  To: Nicolas Chautru, dev; +Cc: hemant.agrawal, david.marchand, hernan.vargas



On 8/13/24 01:41, Nicolas Chautru wrote:
> v2: update to ABI doc suggested by Maxime.
> 
>   These series include introducing a new paramter in the queue stat
> which can be used to monitor the number of available enqueue
> still possible.
> The acc PMD is then refactored to use a set of common function
> to update several queue status parameters including the new one.
> The application is also updated.
> Thanks
> Nic
> 
> Nicolas Chautru (3):
>    bbdev: new queue stat for available enqueue depth
>    baseband/acc: refactor queue status update
>    test/bbdev: update for queue stats
> 
>   app/test-bbdev/test_bbdev_perf.c       |  1 +
>   doc/guides/rel_notes/release_24_11.rst |  3 ++
>   drivers/baseband/acc/acc_common.h      | 18 ++++++++
>   drivers/baseband/acc/rte_acc100_pmd.c  | 45 ++++++-------------
>   drivers/baseband/acc/rte_vrb_pmd.c     | 61 ++++++++------------------
>   lib/bbdev/rte_bbdev.h                  |  2 +
>   6 files changed, 56 insertions(+), 74 deletions(-)
> 

Applied to dpdk-next-baseband/for-main

Thanks,
Maxime


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2024-09-13 13:50 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-08-12 23:41 [PATCH v2 0/3] bbdev: sdditional queue stats Nicolas Chautru
2024-08-12 23:41 ` [PATCH v2 1/3] bbdev: new queue stat for available enqueue depth Nicolas Chautru
2024-09-10 15:16   ` Maxime Coquelin
2024-08-12 23:42 ` [PATCH v2 2/3] baseband/acc: refactor queue status update Nicolas Chautru
2024-08-13  7:24   ` Mattia Milani
2024-08-13  7:31     ` Mattia Milani
2024-09-10 15:26   ` Maxime Coquelin
2024-08-12 23:42 ` [PATCH v2 3/3] test/bbdev: update for queue stats Nicolas Chautru
2024-09-10 15:32   ` Maxime Coquelin
2024-08-13  7:22 ` [PATCH v2 0/3] bbdev: sdditional " Hemant Agrawal
2024-09-13 13:50 ` Maxime Coquelin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).