Dear Michal, dear Jacob,

One minor comment:

Am 08.08.25 um 13:40 schrieb Michal Kubiak:
On Mon, Jul 07, 2025 at 03:58:37PM -0700, Jacob Keller wrote:


On 7/4/2025 9:18 AM, Michal Kubiak wrote:
@@ -1075,16 +780,17 @@ void ice_clean_ctrl_rx_irq(struct ice_rx_ring *rx_ring)
  static int ice_clean_rx_irq(struct ice_rx_ring *rx_ring, int budget)

[...]

@@ -1144,27 +841,35 @@ static int ice_clean_rx_irq(struct ice_rx_ring *rx_ring, 
int budget)
                if (ice_is_non_eop(rx_ring, rx_desc))
                        continue;
- ice_get_pgcnts(rx_ring);
                xdp_verdict = ice_run_xdp(rx_ring, xdp, xdp_prog, xdp_ring, 
rx_desc);
                if (xdp_verdict == ICE_XDP_PASS)
                        goto construct_skb;
-               total_rx_bytes += xdp_get_buff_len(xdp);
-               total_rx_pkts++;
- ice_put_rx_mbuf(rx_ring, xdp, &xdp_xmit, ntc, xdp_verdict);
+               if (xdp_verdict & (ICE_XDP_TX | ICE_XDP_REDIR))
+                       xdp_xmit |= xdp_verdict;
+               total_rx_bytes += xdp_get_buff_len(&xdp->base);
+               total_rx_pkts++;
+ xdp->data = NULL;
+               rx_ring->first_desc = ntc;
+               rx_ring->nr_frags = 0;
                continue;
  construct_skb:
-               skb = ice_build_skb(rx_ring, xdp);
+               skb = xdp_build_skb_from_buff(&xdp->base);
+
                /* exit if we failed to retrieve a buffer */
                if (!skb) {
                        rx_ring->ring_stats->rx_stats.alloc_page_failed++;

This is not your fault, but we've been incorrectly incrementing
alloc_page_failed here instead of alloc_buf_failed.


Sure. It's a good idea to fix it while we're rewriting the Rx path.
Will be addressed in v2.

Should this be a separate patch, that can be easily backported?

[…]


Kind regards,

Paul

Reply via email to