mirror of
https://github.com/torvalds/linux.git
synced 2026-04-22 16:53:59 -04:00
The lan969x switch device supports manual frame injection and extraction to and from the switch core, using a number of injection and extraction queues. This technique is currently supported, but delivers poor performance compared to Frame DMA (FDMA). This lan969x implementation of FDMA, hooks into the existing FDMA for Sparx5, but requires its own RX and TX handling, as lan969x does not support the same native cache coherency that Sparx5 does. Effectively, this means that we are going to use the DMA mapping API for mapping and unmapping TX buffers. The RX loop will utilize the page pool API for efficient RX handling. Other than that, the implementation is largely the same, and utilizes the FDMA library for DCB and DB handling. Some numbers: Manual injection/extraction (before this series): // iperf3 -c 1.0.1.1 [ ID] Interval Transfer Bitrate [ 5] 0.00-10.02 sec 345 MBytes 289 Mbits/sec sender [ 5] 0.00-10.06 sec 345 MBytes 288 Mbits/sec receiver FDMA (after this series): // iperf3 -c 1.0.1.1 [ ID] Interval Transfer Bitrate [ 5] 0.00-10.03 sec 1.10 GBytes 940 Mbits/sec sender [ 5] 0.00-10.07 sec 1.10 GBytes 936 Mbits/sec receiver Reviewed-by: Steen Hegelund <Steen.Hegelund@microchip.com> Signed-off-by: Daniel Machon <daniel.machon@microchip.com> Link: https://patch.msgid.link/20250113-sparx5-lan969x-switch-driver-5-v2-5-c468f02fd623@microchip.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
34 lines
843 B
Plaintext
34 lines
843 B
Plaintext
config SPARX5_SWITCH
|
|
tristate "Sparx5 switch driver"
|
|
depends on NET_SWITCHDEV
|
|
depends on HAS_IOMEM
|
|
depends on OF
|
|
depends on ARCH_SPARX5 || COMPILE_TEST
|
|
depends on PTP_1588_CLOCK_OPTIONAL
|
|
depends on BRIDGE || BRIDGE=n
|
|
select PHYLINK
|
|
select PHY_SPARX5_SERDES
|
|
select RESET_CONTROLLER
|
|
select VCAP
|
|
select FDMA
|
|
help
|
|
This driver supports the Sparx5 network switch device.
|
|
|
|
config SPARX5_DCB
|
|
bool "Data Center Bridging (DCB) support"
|
|
depends on SPARX5_SWITCH && DCB
|
|
default y
|
|
help
|
|
Say Y here if you want to use Data Center Bridging (DCB) in the
|
|
driver. This can be used to assign priority to traffic, based on
|
|
DSCP and PCP.
|
|
|
|
If unsure, set to Y.
|
|
|
|
config LAN969X_SWITCH
|
|
bool "Lan969x switch driver"
|
|
depends on SPARX5_SWITCH
|
|
select PAGE_POOL
|
|
help
|
|
This driver supports the lan969x family of network switch devices.
|