[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


 * 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
   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