[Bionic,PULL] sfc: patches for LP#1836635
mbox series

Message ID 20190715200959.8325-1-mfo@canonical.com
State New
Headers show
Series
  • [Bionic,PULL] sfc: patches for LP#1836635
Related show

Pull-request

https://git.launchpad.net/~mfo/+git/bionic-linux lp1836635

Message

Mauricio Faria de Oliveira July 15, 2019, 8:09 p.m. UTC
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(-)

Comments

Stefan Bader July 19, 2019, 3:18 p.m. UTC | #1
On 15.07.19 22:09, Mauricio Faria de Oliveira wrote:
> 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(-)
> 
Personally I hate those huge piles of changes going into a stable release to
make HW work which did not exist at the time of release. But I also know that in
the end my opinion will not matter. So just be mindful that you will be the
prime contact to be handed back all the pieces should this go off.

Acked-by: Stefan Bader <stefan.bader@canonical.com>
Mauricio Faria de Oliveira July 19, 2019, 3:32 p.m. UTC | #2
On Fri, Jul 19, 2019 at 12:19 PM Stefan Bader
<stefan.bader@canonical.com> wrote:
>
> On 15.07.19 22:09, Mauricio Faria de Oliveira wrote:
> > 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(-)
> >
> Personally I hate those huge piles of changes going into a stable release to
> make HW work which did not exist at the time of release. But I also know that in
> the end my opinion will not matter. So just be mindful that you will be the
> prime contact to be handed back all the pieces should this go off.
>

I think similarly. Yes, 'ack'.  ;- )

> Acked-by: Stefan Bader <stefan.bader@canonical.com>
>
Kleber Souza July 23, 2019, 12:30 p.m. UTC | #3
On 7/15/19 10:09 PM, Mauricio Faria de Oliveira wrote:
> 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")

Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>

Thanks,
Kleber

> 
> ---
> 
> 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(-)
>
Kleber Souza July 23, 2019, 12:34 p.m. UTC | #4
On 7/15/19 10:09 PM, Mauricio Faria de Oliveira wrote:
> 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)

Applied to bionic/master-next branch.

Thanks,
Kleber

> 
> ----------------------------------------------------------------
> 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(-)
>