Netdev List
 help / color / mirror / Atom feed
From: Vladimir Oltean <olteanv@gmail.com>
To: Rosen Penev <rosenp@gmail.com>
Cc: netdev@vger.kernel.org, Madalin Bucur <madalin.bucur@nxp.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH net-next] net: dpaa_eth: convert to napi_gro_receive
Date: Mon, 6 Jul 2026 11:39:06 +0300	[thread overview]
Message-ID: <20260706083906.5oxmr47vbnaztfu2@skbuf> (raw)
In-Reply-To: <20260706030632.1826810-1-rosenp@gmail.com>

Hi Rosen,

On Sun, Jul 05, 2026 at 08:06:32PM -0700, Rosen Penev wrote:
> Replace netif_receive_skb() with napi_gro_receive() to improve receive
> performance for this driver. It has rx checksum support so routing speed
> shouldn't suffer.
> 
> Tested on a WatchGuard Firebox M300.
> 
> iperf3 bidir speed test:
> 
> [ ID][Role]   Interval         Transfer      Bitrate        Retr
> [  5][TX-C]   0.00-60.01  sec  5.35 GBytes   766 Mbits/sec  184    sender
> [  5][TX-C]   0.00-60.02  sec  5.35 GBytes   766 Mbits/sec         receiver
> [  7][RX-C]   0.00-60.01  sec  5.50 GBytes   787 Mbits/sec  124    sender
> [  7][RX-C]   0.00-60.02  sec  5.49 GBytes   786 Mbits/sec         receiver
> 
> After:
> 
> [ ID][Role]   Interval         Transfer      Bitrate        Retr
> [  5][TX-C]   0.00-60.01  sec  6.49 GBytes   929 Mbits/sec    0    sender
> [  5][TX-C]   0.00-60.02  sec  6.49 GBytes   928 Mbits/sec         receiver
> [  7][RX-C]   0.00-60.01  sec  6.55 GBytes   938 Mbits/sec    0    sender
> [  7][RX-C]   0.00-60.02  sec  6.55 GBytes   937 Mbits/sec         receiver
> 
> Assisted-by: Opencode:big-pickle
> Signed-off-by: Rosen Penev <rosenp@gmail.com>
> ---
>  drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
> index ad2d8256eb8d..83191f636ec7 100644
> --- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
> +++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
> @@ -2824,10 +2824,7 @@ static enum qman_cb_dqrr_result rx_default_dqrr(struct qman_portal *portal,
>  
>  	skb_len = skb->len;
>  
> -	if (unlikely(netif_receive_skb(skb) == NET_RX_DROP)) {
> -		percpu_stats->rx_dropped++;
> -		return qman_cb_dqrr_consume;
> -	}
> +	napi_gro_receive(&np->napi, skb);
>  
>  	percpu_stats->rx_packets++;
>  	percpu_stats->rx_bytes += skb_len;
> -- 
> 2.55.0
> 
> 

(thanks to Madalin for pointing out this change to me)

I do not have time this week to test this patch, but in premise, you are
creating exactly the conditions for this bug to occur:
https://github.com/nxp-qoriq/linux/commit/d0ebec2092d6c5fe327513cb66e02d8c2c1a8f87

In sdk_dpaa we already do GRO for TCP flows and it has the problems
pointed out in the above commit. With your change to use GRO for all
capable flows, I currently have no reason to believe that without
similar countermeasures as those taken by sdk_dpaa (napi_gro_receive()
global to the entire QMan portal) the outcome would be different.

Have you tested traffic in mixed scenarios, where flows from multiple
interfaces land on the same CPU?

Until further evidence comes in:

pw-bot: cr

  reply	other threads:[~2026-07-06  8:39 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-06  3:06 [PATCH net-next] net: dpaa_eth: convert to napi_gro_receive Rosen Penev
2026-07-06  8:39 ` Vladimir Oltean [this message]
2026-07-06 23:25   ` Rosen Penev

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=20260706083906.5oxmr47vbnaztfu2@skbuf \
    --to=olteanv@gmail.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=madalin.bucur@nxp.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=rosenp@gmail.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