|
|
Log in / Subscribe / Register

net: bcmgenet: collapse TX priority queues

From:  Nicolai Buchwitz <nb-AT-tipi-net.de>
To:  Doug Berger <opendmb-AT-gmail.com>, Florian Fainelli <florian.fainelli-AT-broadcom.com>, bcm-kernel-feedback-list-AT-broadcom.com, Andrew Lunn <andrew+netdev-AT-lunn.ch>, "David S . Miller" <davem-AT-davemloft.net>, Eric Dumazet <edumazet-AT-google.com>, Jakub Kicinski <kuba-AT-kernel.org>, Paolo Abeni <pabeni-AT-redhat.com>
Subject:  [PATCH net-next 0/3] net: bcmgenet: collapse TX priority queues
Date:  Fri, 12 Jun 2026 22:59:12 +0200
Message-ID:  <20260612205915.3156127-1-nb@tipi-net.de>
Cc:  Justin Chen <justin.chen-AT-broadcom.com>, Ovidiu Panait <ovidiu.panait.rb-AT-renesas.com>, netdev-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, Nicolai Buchwitz <nb-AT-tipi-net.de>
Archive-link:  Article

The strict-priority TX queues can starve under multi-queue load and
trip NETDEV_WATCHDOG. Justin's earlier series [1] tried to mitigate
the timeouts but kept the multi-queue design. Ovidiu Panait recently
proposed a WRR stop-gap [2]. This series drops the priority queues
entirely. Justin confirmed they are no longer required.

Patch 1 collapses v2-v4 hw_params to the same single-queue path v1
already uses. Patch 2 removes the now-dead priority register writes,
helper macros, and the dead "flow period for ring != 0" branch in
bcmgenet_init_tx_ring(); the DMA_ARBITER_{RR,WRR,SP} and
DMA_RING_BUF_PRIORITY_* HW defines are kept as register
documentation. Patch 3 switches the netdev allocation from
alloc_etherdev_mqs(., 5, 5) to alloc_etherdev(), since only one
TX/RX queue is ever used.

Tested on Raspberry Pi CM4 (BCM2711):
  - Ovidiu's reproducer (iperf3 -u -b0 -P16 -t60) no longer trips
    NETDEV_WATCHDOG.
  - UDP sustains 956 Mbit/s line rate over 60 s with 0 datagrams
    lost (0/4952890).
  - Single-stream TCP throughput unchanged at 943 Mbit/s.

[1] https://lore.kernel.org/netdev/20260406175756.134567-1-ju...
[2] https://lore.kernel.org/netdev/20260610085238.56300-1-ovi...

Nicolai Buchwitz (3):
  net: bcmgenet: collapse TX priority queues to a single queue
  net: bcmgenet: remove dead priority queue plumbing
  net: bcmgenet: allocate a single-queue netdev

 .../net/ethernet/broadcom/genet/bcmgenet.c    | 100 +++---------------
 .../net/ethernet/broadcom/genet/bcmgenet.h    |   2 -
 2 files changed, 16 insertions(+), 86 deletions(-)

-- 
2.53.0




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds