public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Michal Kubiak <michal.kubiak@intel.com>
To: Jacob Keller <jacob.e.keller@intel.com>
Cc: <intel-wired-lan@lists.osuosl.org>,
	<maciej.fijalkowski@intel.com>, <aleksander.lobakin@intel.com>,
	<larysa.zaremba@intel.com>, <netdev@vger.kernel.org>,
	<przemyslaw.kitszel@intel.com>, <anthony.l.nguyen@intel.com>
Subject: Re: [Intel-wired-lan] [PATCH iwl-next 3/3] ice: switch to Page Pool
Date: Fri, 8 Aug 2025 13:40:47 +0200	[thread overview]
Message-ID: <aJXiP-_ZUfBErhAv@localhost.localdomain> (raw)
In-Reply-To: <53c62d9c-f542-4cf3-8aeb-a1263e05acad@intel.com>

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.

> >  			xdp_verdict = ICE_XDP_CONSUMED;
> 
> xdp_verdict is no longer used, so I don't think we need to modify it
> further here. It was previously being used as part of the call to
> ice_put_rx_mbuf.
> 

You're right. I'll remove it in v2.

> > +			xdp->data = NULL;
> > +			rx_ring->first_desc = ntc;
> > +			rx_ring->nr_frags = 0;
> > +			break;
> >  		}
> > -		ice_put_rx_mbuf(rx_ring, xdp, &xdp_xmit, ntc, xdp_verdict);
> >  
> > -		if (!skb)
> > -			break;
> > +		xdp->data = NULL;
> > +		rx_ring->first_desc = ntc;
> > +		rx_ring->nr_frags = 0;
> >  
> 
> The failure case for !skb does the same as this, so would it make sense
> to move this block up to before !skb and just check the skb pointer
> afterwards?
> 

Yeah. Together with Olek we re-organized the logic here, so in v2 it
should be simplified.

> >  		stat_err_bits = BIT(ICE_RX_FLEX_DESC_STATUS0_RXE_S);
> >  		if (unlikely(ice_test_staterr(rx_desc->wb.status_error0


Thanks,
Michal

  reply	other threads:[~2025-08-08 11:40 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-04 16:18 [PATCH iwl-next 0/3] ice: convert Rx path to Page Pool Michal Kubiak
2025-07-04 16:18 ` [PATCH iwl-next 1/3] ice: remove legacy Rx and construct SKB Michal Kubiak
2025-07-04 16:18 ` [PATCH iwl-next 2/3] ice: drop page splitting and recycling Michal Kubiak
2025-07-07 22:48   ` [Intel-wired-lan] " Jacob Keller
2025-07-31 15:56     ` Michal Kubiak
2025-07-31 16:17       ` Jacob Keller
2025-07-31 16:32         ` Michal Kubiak
2025-07-04 16:18 ` [PATCH iwl-next 3/3] ice: switch to Page Pool Michal Kubiak
2025-07-07 22:58   ` [Intel-wired-lan] " Jacob Keller
2025-08-08 11:40     ` Michal Kubiak [this message]
2025-08-08 12:03       ` Paul Menzel
2025-08-08 13:04         ` Michal Kubiak
2025-08-08 13:08           ` Paul Menzel
2025-08-08 16:07             ` Michal Kubiak
2025-07-04 17:05 ` [PATCH iwl-next 0/3] ice: convert Rx path " Michal Kubiak
2025-07-07 23:32 ` [Intel-wired-lan] " Jacob Keller
2025-07-07 23:36   ` Jacob Keller
2025-07-10 22:43     ` Jacob Keller
2025-07-14 14:35       ` Alexander Lobakin
2025-08-08 12:53         ` Michal Kubiak

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aJXiP-_ZUfBErhAv@localhost.localdomain \
    --to=michal.kubiak@intel.com \
    --cc=aleksander.lobakin@intel.com \
    --cc=anthony.l.nguyen@intel.com \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=jacob.e.keller@intel.com \
    --cc=larysa.zaremba@intel.com \
    --cc=maciej.fijalkowski@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=przemyslaw.kitszel@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox