From: Sieng Piaw Liew Date: Wed, 22 Jun 2022 05:22:17 +0000 (+0800) Subject: bmips: use netdev_alloc_skb() for copybreak X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=7178adadcca8216a651e10e1fefbd7ebec930c1b;p=openwrt%2Fstaging%2Fnoltari.git 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 --- 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++;