[Bionic][PULL] sfc: patches for LP#1836635
Mauricio Faria de Oliveira
mfo at canonical.com
Mon Jul 15 20:09:59 UTC 2019
BugLink: https://bugs.launchpad.net/bugs/1836635
[Impact]
* Support for Solarflare X2542 network adapter
(Medford2 / SFC9250) in the sfc driver.
* This network adapter is present on recent hardware,
at least HP 2019 and Dell PowerEdge R740xd systems.
* On recent-hardware deployments that would rather use
the Bionic LTS / GA supported kernel and cannot move
to HWE kernels this adapter is non functional at all.
[Test Case]
* The X2542 adapter has been exercised with iperf3 and nc
across 2 hosts on 25G link speed w/ MTUs 1400/1500/9000
on both directions, for 1 week.
Its performance is on par with the Cosmic 4.18 kernel
(which contains all these patches) and the out-of-tree
driver from the vendor.
* The 7000 series adapter (for regression testing an old model,
supported previously) has been exercised with iperf and netperf
(TCP_STREAM, UDP_STREAM, TCP_RR, UDP_RR, and TCP_CRR) in one
host (client/server in different adapter ports isolated with
network namespaces, so traffic goes through the network switch),
on 10G link speed on MTUs 1500/9000, for 1 weekend.
No regressions observed between the original and test kernels.
[Regression Potential]
* The patchset touches a lot of the sfc driver, so the potential
for regression definitely exists. Thus, a lot of consideration
and testing happened:
* It has been tested on other adapter which uses the old code,
and no regressions were found so far (see 7000 series above).
* The patchset is exclusively cherry-picks, no single backport.
* The patchset essentially moves the Bionic driver up in the
upstream 'git log --oneline -- drivers/net/ethernet/sfc/':
- since commit d4a7a8893d4c ("sfc: pass valid pointers from efx_enqueue_unwind")
- until commit 7f61e6c6279b ("sfc: support FEC configuration through ethtool")
- except for 2 commits (not needed / unrelated)
- commit 42356d9a137b ("sfc: support RSS spreading of ethtool ntuple filters")
- commit 9baeb5eb1f83 ("sfc: falcon: remove duplicated bit-wise or of LOOPBACK_SGMII")
- plus 2 more recent commits (fixes)
- commit 458bd99e4974 ("sfc: remove ctpio_dmabuf_start from stats")
- commit 0c235113b3c4 ("sfc: stop the TX queue before pushing new buffers")
---
The following changes since commit 6be28bb37c80aa9365eee74646f4138b9aee3295:
powerpc/pseries: Fix unitialized timer reset on migration (2019-07-12 08:36:18 -0700)
are available in the Git repository at:
https://git.launchpad.net/~mfo/+git/bionic-linux lp1836635
for you to fetch changes up to 980682f7783b476a6d77f3a1a4ff0e6728bac515:
sfc: stop the TX queue before pushing new buffers (2019-07-15 16:17:16 -0300)
----------------------------------------------------------------
Bert Kenward (6):
sfc: update EF10 register definitions
sfc: populate the timer reload field
sfc: expose CTPIO stats on NICs that support them
sfc: remove tx and MCDI handling from NAPI budget consideration
sfc: add suffix to large constant in ptp
sfc: remove ctpio_dmabuf_start from stats
Edward Cree (14):
sfc: make mem_bar a function rather than a constant
sfc: support VI strides other than 8k
sfc: add Medford2 (SFC9250) PCI Device IDs
sfc: improve PTP error reporting
sfc: update MCDI protocol headers
sfc: support variable number of MAC stats
sfc: expose FEC stats on Medford2
sfc: basic MCDI mapping of 25/50/100G link speeds
sfc: support the ethtool ksettings API properly so that 25/50/100G works
sfc: add bits for 25/50/100G supported/advertised speeds
sfc: on 8000 series use TX queues for TX timestamps
sfc: support second + quarter ns time format for receive datapath
sfc: update MCDI protocol headers
sfc: support FEC configuration through ethtool
Laurence Evans (3):
sfc: simplify RX datapath timestamping
sfc: support separate PTP and general timestamping
sfc: support Medford2 frequency adjustment format
Martin Habets (7):
sfc: handle TX timestamps in the normal data path
sfc: add function to determine which TX timestamping method to use
sfc: use main datapath for HW timestamps if available
sfc: only enable TX timestamping if the adapter is licensed for it
sfc: MAC TX timestamp handling on the 8000 series
sfc: only advertise TX timestamping if we have the license for it
sfc: stop the TX queue before pushing new buffers
kbuild test robot (1):
sfc: mark some unexported symbols as static
drivers/net/ethernet/sfc/ef10.c | 361 ++-
drivers/net/ethernet/sfc/ef10_regs.h | 46 +-
drivers/net/ethernet/sfc/efx.c | 66 +-
drivers/net/ethernet/sfc/efx.h | 9 +-
drivers/net/ethernet/sfc/ethtool.c | 38 +-
drivers/net/ethernet/sfc/farch.c | 26 +-
drivers/net/ethernet/sfc/io.h | 19 +-
drivers/net/ethernet/sfc/mcdi.h | 3 +
drivers/net/ethernet/sfc/mcdi_pcol.h | 4859 ++++++++++++++++++++++++++-------
drivers/net/ethernet/sfc/mcdi_port.c | 318 ++-
drivers/net/ethernet/sfc/net_driver.h | 41 +-
drivers/net/ethernet/sfc/nic.h | 27 +
drivers/net/ethernet/sfc/ptp.c | 370 ++-
drivers/net/ethernet/sfc/siena.c | 12 +-
drivers/net/ethernet/sfc/tx.c | 54 +-
15 files changed, 4976 insertions(+), 1273 deletions(-)
More information about the kernel-team
mailing list