Message ID | 20230606085558.1708766-2-yoshihiro.shimoda.uh@renesas.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Geert Uytterhoeven |
Headers | show |
Series | net: renesas: rswitch: Improve perfromance of TX/RX | expand |
On Tue, Jun 06, 2023 at 05:55:57PM +0900, Yoshihiro Shimoda wrote: > This hardware can receive multiple frames so that using > napi_gro_receive() instead of netif_receive_skb() gets good > performance of RX. > > Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com> > --- > drivers/net/ethernet/renesas/rswitch.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/renesas/rswitch.c b/drivers/net/ethernet/renesas/rswitch.c > index aace87139cea..7bb0a6d594a0 100644 > --- a/drivers/net/ethernet/renesas/rswitch.c > +++ b/drivers/net/ethernet/renesas/rswitch.c > @@ -729,7 +729,7 @@ static bool rswitch_rx(struct net_device *ndev, int *quota) > } > skb_put(skb, pkt_len); > skb->protocol = eth_type_trans(skb, ndev); > - netif_receive_skb(skb); > + napi_gro_receive(&rdev->napi, skb); Some other optmization which you could do later on is to improve rswitch_next_queue_index() as it is used on a per packet basis. > rdev->ndev->stats.rx_packets++; > rdev->ndev->stats.rx_bytes += pkt_len; > > -- > 2.25.1 > >
Hello Maciej, > From: Maciej Fijalkowski, Sent: Wednesday, June 7, 2023 2:51 AM > > On Tue, Jun 06, 2023 at 05:55:57PM +0900, Yoshihiro Shimoda wrote: > > This hardware can receive multiple frames so that using > > napi_gro_receive() instead of netif_receive_skb() gets good > > performance of RX. > > > > Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> > > Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com> Thank you for your review! > > --- > > drivers/net/ethernet/renesas/rswitch.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/net/ethernet/renesas/rswitch.c b/drivers/net/ethernet/renesas/rswitch.c > > index aace87139cea..7bb0a6d594a0 100644 > > --- a/drivers/net/ethernet/renesas/rswitch.c > > +++ b/drivers/net/ethernet/renesas/rswitch.c > > @@ -729,7 +729,7 @@ static bool rswitch_rx(struct net_device *ndev, int *quota) > > } > > skb_put(skb, pkt_len); > > skb->protocol = eth_type_trans(skb, ndev); > > - netif_receive_skb(skb); > > + napi_gro_receive(&rdev->napi, skb); > > Some other optmization which you could do later on is to improve > rswitch_next_queue_index() as it is used on a per packet basis. Thank you for your suggestion! I'll try this later. Best regards, Yoshihiro Shimoda > > rdev->ndev->stats.rx_packets++; > > rdev->ndev->stats.rx_bytes += pkt_len; > > > > -- > > 2.25.1 > > > >
diff --git a/drivers/net/ethernet/renesas/rswitch.c b/drivers/net/ethernet/renesas/rswitch.c index aace87139cea..7bb0a6d594a0 100644 --- a/drivers/net/ethernet/renesas/rswitch.c +++ b/drivers/net/ethernet/renesas/rswitch.c @@ -729,7 +729,7 @@ static bool rswitch_rx(struct net_device *ndev, int *quota) } skb_put(skb, pkt_len); skb->protocol = eth_type_trans(skb, ndev); - netif_receive_skb(skb); + napi_gro_receive(&rdev->napi, skb); rdev->ndev->stats.rx_packets++; rdev->ndev->stats.rx_bytes += pkt_len;
This hardware can receive multiple frames so that using napi_gro_receive() instead of netif_receive_skb() gets good performance of RX. Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> --- drivers/net/ethernet/renesas/rswitch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)