Skip to content

alx: add multi queue support

Tobias Regnery netdev 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest9 patches 1 replyIn review
  2. v19 patches 2 repliesSuperseded

Changes in v2 from the cover letter

- drop unneeded casts in alx_alloc_rx_ring (Patch 1)
- add additional information about testing and benefit to the changelog

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/9alx: refactor descriptor allocationdrivers/net/ethernet/atheros/alx/main.c+53 -440 replies
2/9alx: extend data structures for multi queue supportdrivers/net/ethernet/atheros/alx/alx.h+31 -00 replies
3/9alx: add ability to allocate and free alx_napi structuresdrivers/net/ethernet/atheros/alx/main.c+78 -210 replies
4/9alx: switch to per queue data structuresdrivers/net/ethernet/atheros/alx/alx.h drivers/net/ethernet/atheros/alx/main.c+93 -950 replies
5/9alx: prepare interrupt functions for multiple queuesdrivers/net/ethernet/atheros/alx/main.c+105 -270 replies
6/9alx: prepare resource allocation for multi queue supportdrivers/net/ethernet/atheros/alx/main.c+97 -520 replies
7/9alx: prepare tx path for multi queue supportdrivers/net/ethernet/atheros/alx/main.c+45 -130 replies
8/9alx: enable msi-x interrupts by defaultdrivers/net/ethernet/atheros/alx/main.c+1 -50 replies
9/9alx: enable multiple tx queuesdrivers/net/ethernet/atheros/alx/main.c+6 -20 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCH net-next V2 0/9] alx: add multi queue support

This patchset lays the groundwork for multi queue support in the alx driver and enables multi queue support for the tx path by default. The hardware supports up to 4 tx queues.

Benefits are better utilization of multi core cpus and the usage of the msi-x support by default which splits the handling of rx / tx and misc other interrupts.

The rx path is a little bit harder because apparently (based on the limited information from the downstream driver) the hardware supports up to 8 rss queues but only has one hardware descriptor ring on the rx side. So the rx path will be part of another patchset.

Tested on my AR8161 ethernet adapter with different tests:
- there are no regressions observed during my daily usage
- iperf tcp and udp tests shows no performance regressions
- netperf TCP_RR and UDP_RR shows a slight performance increase of about 1-2% with this patchset applied

This work is based on the downstream driver at github.com/qca/alx

Changes in V2:
- drop unneeded casts in alx_alloc_rx_ring (Patch 1)
- add additional information about testing and benefit to the changelog

Tobias Regnery (9):
alx: refactor descriptor allocation
alx: extend data structures for multi queue support
alx: add ability to allocate and free alx_napi structures
alx: switch to per queue data structures
alx: prepare interrupt functions for multiple queues
alx: prepare resource allocation for multi queue support
alx: prepare tx path for multi queue support
alx: enable msi-x interrupts by default
alx: enable multiple tx queues

 drivers/net/ethernet/atheros/alx/alx.h  |  36 ++-
 drivers/net/ethernet/atheros/alx/main.c | 554 ++++++++++++++++++++++----------
 2 files changed, 420 insertions(+), 170 deletions(-)
Signature · 1 line
2.7.4