From 7178adadcca8216a651e10e1fefbd7ebec930c1b Mon Sep 17 00:00:00 2001 From: Sieng Piaw Liew Date: Wed, 22 Jun 2022 13:22:17 +0800 Subject: [PATCH] bmips: use netdev_alloc_skb() for copybreak bmips is using Broadcom B53 DSA driver which means the ethernet driver must compensate for 6 bytes tags from the internal switch. This means using NET_IP_ALIGN actually misaligns the skb, lowering performance significantly. Therefore napi_alloc_skb() which uses NET_IP_ALIGN is changed to netdev_alloc_skb(). Performance in iperf3 is increased from ~47Mbps to 52Mbps. Signed-off-by: Sieng Piaw Liew --- .../bmips/files/drivers/net/ethernet/broadcom/bcm6368-enetsw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/linux/bmips/files/drivers/net/ethernet/broadcom/bcm6368-enetsw.c b/target/linux/bmips/files/drivers/net/ethernet/broadcom/bcm6368-enetsw.c index d9ecba5188..7ddbf8a10a 100644 --- a/target/linux/bmips/files/drivers/net/ethernet/broadcom/bcm6368-enetsw.c +++ b/target/linux/bmips/files/drivers/net/ethernet/broadcom/bcm6368-enetsw.c @@ -374,7 +374,7 @@ static int bcm6368_enetsw_receive_queue(struct net_device *dev, int budget) if (len < priv->copybreak) { struct sk_buff *nskb; - nskb = napi_alloc_skb(&priv->napi, len); + nskb = netdev_alloc_skb(dev, len); if (!nskb) { /* forget packet, just rearm desc */ dev->stats.rx_dropped++; -- 2.30.2