Explorar el Código

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 <[email protected]>
Sieng Piaw Liew hace 3 años
padre
commit
7178adadcc

+ 1 - 1
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++;