mbox series

[net-next,0/4] nfp: flower tc block support and nfp PCI updates

Message ID 20180425041704.26882-1-jakub.kicinski@netronome.com
Headers show
Series nfp: flower tc block support and nfp PCI updates | expand

Message

Jakub Kicinski April 25, 2018, 4:17 a.m. UTC
This series improves the nfp PCIe code by making use of the new
pcie_print_link_status() helper and resetting NFP locks when
driver loads.  This can help us avoid lock ups after host crashes
and is rebooted with PCIe reset or when kdump kernel is loaded.

The flower changes come from John, he says:

This patchset fixes offload issues when multiple repr netdevs are bound to
a tc block and filter rules added. Previously the rule would be passed to
the reprs and would be rejected in all but the first as the cookie value
will indicate a duplicate. The first patch extends the flow lookup
function to consider both host context and ingress netdev along with the
cookie value. This means that a rule with a given cookie can exist
multiple times assuming the ingress netdev is different. The host context
ensures that stats from fw are associated with the correct instance of the
rule.

The second patch protects against rejecting add/del/stat messages when a
rule has a repr as both an ingress port and an egress dev. In such cases a
callback can be triggered twice (once for ingress and once for egress)
and can lead to duplicate rule detection or incorrect double calls.


Jakub Kicinski (2):
  nfp: reset local locks on init
  nfp: print PCIe link bandwidth on probe

John Hurley (2):
  nfp: flower: support offloading multiple rules with same cookie
  nfp: flower: ignore duplicate cb requests for same rule

 drivers/net/ethernet/netronome/nfp/flower/main.h   |  9 +++-
 .../net/ethernet/netronome/nfp/flower/metadata.c   | 20 +++++---
 .../net/ethernet/netronome/nfp/flower/offload.c    | 50 ++++++++++++++----
 drivers/net/ethernet/netronome/nfp/nfp_main.c      |  5 ++
 drivers/net/ethernet/netronome/nfp/nfpcore/nfp.h   |  2 +
 .../ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c  |  1 +
 .../net/ethernet/netronome/nfp/nfpcore/nfp_cpp.h   |  2 +
 .../net/ethernet/netronome/nfp/nfpcore/nfp_mutex.c | 45 +++++++++++++++++
 .../ethernet/netronome/nfp/nfpcore/nfp_resource.c  | 59 ++++++++++++++++++++++
 9 files changed, 173 insertions(+), 20 deletions(-)

Comments

David Miller April 25, 2018, 6:07 p.m. UTC | #1
From: Jakub Kicinski <jakub.kicinski@netronome.com>
Date: Tue, 24 Apr 2018 21:17:00 -0700

> This series improves the nfp PCIe code by making use of the new
> pcie_print_link_status() helper and resetting NFP locks when
> driver loads.  This can help us avoid lock ups after host crashes
> and is rebooted with PCIe reset or when kdump kernel is loaded.
> 
> The flower changes come from John, he says:
> 
> This patchset fixes offload issues when multiple repr netdevs are bound to
> a tc block and filter rules added. Previously the rule would be passed to
> the reprs and would be rejected in all but the first as the cookie value
> will indicate a duplicate. The first patch extends the flow lookup
> function to consider both host context and ingress netdev along with the
> cookie value. This means that a rule with a given cookie can exist
> multiple times assuming the ingress netdev is different. The host context
> ensures that stats from fw are associated with the correct instance of the
> rule.
> 
> The second patch protects against rejecting add/del/stat messages when a
> rule has a repr as both an ingress port and an egress dev. In such cases a
> callback can be triggered twice (once for ingress and once for egress)
> and can lead to duplicate rule detection or incorrect double calls.

Series applied, thanks Jakub.