bcm63xx_enet: alloc rx skb with NET_IP_ALIGN
authorSieng Piaw Liew <liew.s.piaw@gmail.com>
Wed, 6 Jan 2021 14:42:05 +0000 (22:42 +0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 7 Jan 2021 20:39:53 +0000 (12:39 -0800)
commitc4a207865e7ea310dc146ff4aa1b0aa0c78d3fe1
tree05e4ca232fa8f79ddde505152778f5ffe4d47ab8
parent375281d3a6dcabaa98f489ee412aedca6d99dffb
bcm63xx_enet: alloc rx skb with NET_IP_ALIGN

Use netdev_alloc_skb_ip_align on newer SoCs with integrated switch
(enetsw) when refilling RX. Increases packet processing performance
by 30% (with netif_receive_skb_list).

Non-enetsw SoCs cannot function with the extra pad so continue to use
the regular netdev_alloc_skb.

Tested on BCM6328 320 MHz and iperf3 -M 512 to measure packet/sec
performance.

Before:
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-30.00 sec 120 MBytes 33.7 Mbits/sec 277 sender
[ 4] 0.00-30.00 sec 120 MBytes 33.5 Mbits/sec receiver

After (+netif_receive_skb_list):
[ 4] 0.00-30.00 sec 155 MBytes 43.3 Mbits/sec 354 sender
[ 4] 0.00-30.00 sec 154 MBytes 43.1 Mbits/sec receiver

Signed-off-by: Sieng Piaw Liew <liew.s.piaw@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/broadcom/bcm63xx_enet.c