Multiqueue support for mtk_eth_soc

Felix Fietkau
2022-11-16T08:07:51Z

This series implements multiqueue support on devices with QDMA (MT7621 and newer)
by using the SoC's traffic shaper function, which is part of the QDMA engine.

The driver exposes traffic shaper queues as network stack queues and configures
them to the link speed limit.
This fixes an issue where traffic to slower ports would drown out traffic to
faster ports. It also fixes packet drops and jitter when running hardware
offloaded traffic alongside traffic from the CPU.

Felix Fietkau (6):
net: ethernet: mtk_eth_soc: increase tx ring size for QDMA devices
net: ethernet: mtk_eth_soc: drop packets to WDMA if the ring is full
net: ethernet: mtk_eth_soc: avoid port_mg assignment on MT7622 and
newer
net: ethernet: mtk_eth_soc: implement multi-queue support for per-port
queues
net: dsa: tag_mtk: assign per-port queues
net: ethernet: mediatek: ppe: assign per-port queues for offloaded
traffic

drivers/net/ethernet/mediatek/mtk_eth_soc.c | 328 ++++++++++++++----
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 28 +-
drivers/net/ethernet/mediatek/mtk_ppe.c | 22 +-
drivers/net/ethernet/mediatek/mtk_ppe.h | 4 +
.../net/ethernet/mediatek/mtk_ppe_offload.c | 12 +-
net/dsa/tag_mtk.c | 2 +
6 files changed, 324 insertions(+), 72 deletions(-)

--
2.38.1