[PATCH net-next v3 0/7] bcm63xx_enet: major makeover of driver

Sieng Piaw Liew
2021-01-06T14:43:52Z

This patch series aim to improve the bcm63xx_enet driver by integrating the
latest networking features, i.e. batched rx processing, BQL, build_skb,
etc.

The newer enetsw SoCs are found to be able to do unaligned rx DMA by adding
NET_IP_ALIGN padding which, combined with these patches, improved packet
processing performance by ~50% on BCM6328.

Older non-enetsw SoCs still benefit mainly from rx batching. Performance
improvement of ~30% is observed on BCM6333.

The BCM63xx SoCs are designed for routers. As such, having BQL is
beneficial as well as trivial to add.

v3:
* Simplify xmit_more patch by not moving around the code needlessly.
* Fix indentation in xmit_more patch.
* Fix indentation in build_skb patch.
* Split rx ring cleanup patch from build_skb patch and precede build_skb
patch for better understanding, as suggested by Florian Fainelli.

v2:
* Add xmit_more support and rx loop improvisation patches.
* Moved BQL netdev_reset_queue() to bcm_enet_stop()/bcm_enetsw_stop()
functions as suggested by Florian Fainelli.
* Improved commit messages.

Sieng Piaw Liew (7):
bcm63xx_enet: batch process rx path
bcm63xx_enet: add BQL support
bcm63xx_enet: add xmit_more support
bcm63xx_enet: alloc rx skb with NET_IP_ALIGN
bcm63xx_enet: consolidate rx SKB ring cleanup code
bcm63xx_enet: convert to build_skb
bcm63xx_enet: improve rx loop

drivers/net/ethernet/broadcom/bcm63xx_enet.c | 186 +++++++++----------
drivers/net/ethernet/broadcom/bcm63xx_enet.h | 14 +-
2 files changed, 103 insertions(+), 97 deletions(-)

--
2.17.1