* [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
* 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
* [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
* 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 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
* [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 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 ` (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 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).