diff mbox series

[ovs-dev,v2,01/11] netdev-dpdk: Fix rx queue fill level with QoS.

Message ID 20251112170420.3155127-2-david.marchand@redhat.com
State Changes Requested
Headers show
Series Outer UDP checksum optimisations. | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_Build_and_Test success github build: passed

Commit Message

David Marchand Nov. 12, 2025, 5:04 p.m. UTC
Caught by code review, rx queue fill was wrong in case some ingress policing
was in place since nb_rx could get updated.

Fixes: 8492adc270fd ("netdev: Add optional qfill output parameter to rxq_recv()")
Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 lib/netdev-dpdk.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

Comments

Mike Pattrick Nov. 25, 2025, 6:58 p.m. UTC | #1
On Wed, Nov 12, 2025 at 12:04 PM David Marchand <david.marchand@redhat.com>
wrote:

> Caught by code review, rx queue fill was wrong in case some ingress
> policing
> was in place since nb_rx could get updated.
>
> Fixes: 8492adc270fd ("netdev: Add optional qfill output parameter to
> rxq_recv()")
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
>

This looks correct.

 Acked-by: Mike Pattrick <mkp@redhat.com>
Kevin Traynor Dec. 5, 2025, 3:54 p.m. UTC | #2
On 12/11/2025 17:04, David Marchand via dev wrote:
> Caught by code review, rx queue fill was wrong in case some ingress policing
> was in place since nb_rx could get updated.
> 
> Fixes: 8492adc270fd ("netdev: Add optional qfill output parameter to rxq_recv()")
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
>  lib/netdev-dpdk.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 

LGTM
Acked-by: Kevin Traynor <ktraynor@redhat.com>
diff mbox series

Patch

diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 687e1196b5..3704145a57 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -3019,6 +3019,14 @@  netdev_dpdk_rxq_recv(struct netdev_rxq *rxq, struct dp_packet_batch *batch,
         return EAGAIN;
     }
 
+    if (qfill) {
+        if (nb_rx == NETDEV_MAX_BURST) {
+            *qfill = rte_eth_rx_queue_count(rx->port_id, rxq->queue_id);
+        } else {
+            *qfill = 0;
+        }
+    }
+
     if (policer) {
         dropped = nb_rx;
         nb_rx = ingress_policer_run(policer,
@@ -3038,14 +3046,6 @@  netdev_dpdk_rxq_recv(struct netdev_rxq *rxq, struct dp_packet_batch *batch,
     batch->count = nb_rx;
     netdev_dpdk_batch_init_packet_fields(batch);
 
-    if (qfill) {
-        if (nb_rx == NETDEV_MAX_BURST) {
-            *qfill = rte_eth_rx_queue_count(rx->port_id, rxq->queue_id);
-        } else {
-            *qfill = 0;
-        }
-    }
-
     return 0;
 }