[pull request][net-next 00/10] Mellanox, mlx5 and devlink updates 2018-07-31

Saeed Mahameed
2018-08-01T23:48:44Z

Hi Dave,

This series provides devlink parameters updates to both devlink API and
mlx5 driver, it is a 2nd iteration of the dropped patches sent in a previous
mlx5 submission "net/mlx5: Support PCIe buffer congestion handling via
Devlink" to address review comments [1].

Changes from the original series:
- According to the discussion outcome, we are keeping the congestion control
setting as mlx5 device specific for the current HW generation.
- Changed the congestion_mode and congestion action param type to string
- Added patches to fix devlink handling of param type string
- Added a patch which adds extack messages support for param set.
- At the end of this series, I've added yet another mlx5 devlink related
feature, firmware snapshot support.

For more information please see tag log below.

Please pull and let me know if there's any problem.

[1] https://patchwork.ozlabs.org/patch/945996/

Thanks,
Saeed.

---

The following changes since commit e6476c21447c4b17c47e476aade6facf050f31e8:

net: remove bogus RCU annotations on socket.wq (2018-07-31 12:40:22 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git tags/mlx5-updates-2018-08-01

for you to fetch changes up to 2ac6108c65ffcb1e5eab1fba1fd59272604d1c32:

net/mlx5: Use devlink region_snapshot parameter (2018-08-01 14:49:09 -0700)

----------------------------------------------------------------
mlx5-updates-2018-08-01

This series provides devlink parameters updates to both devlink API and
mlx5 driver,

1) Devlink changes: (Moshe Shemesh)
The first two patches fix devlink param infrastructure for string type
params.
The third patch adds a devlink helper function to safely copy string from
driver to devlink.
The forth patch adds extack support for param set.

2) mlx5 specific congestion parameters: (Eran Ben Elisha)
Next three patches add new devlink driver specific params for controlling
congestion action and mode, using string type params and extack messages support.

This congestion mode enables hw workaround in specific devices which is
controlled by devlink driver-specific params. The workaround is device
specific for this NIC generation, the next NIC will not need it.

Congestion parameters:
- Congestion action
HW W/A mechanism in the PCIe buffer which monitors the amount of
consumed PCIe buffer per host. This mechanism supports the
following actions in case of threshold overflow:
- Disabled - NOP (Default)
- Drop
- Mark - Mark CE bit in the CQE of received packet
- Congestion mode
- Aggressive - Aggressive static trigger threshold (Default)
- Dynamic - Dynamically change the trigger threshold

3) mlx5 firmware snapshot support via devlink: (Alex Vesker)
Last three patches, add the support for capturing region snapshot of the
firmware crspace during critical errors, using devlink region_snapshot
parameter.

-Saeed.

----------------------------------------------------------------
Alex Vesker (3):
net/mlx5: Add Vendor Specific Capability access gateway
net/mlx5: Add Crdump FW snapshot support
net/mlx5: Use devlink region_snapshot parameter

Eran Ben Elisha (3):
net/mlx5: Move all devlink related functions calls to devlink.c
net/mlx5: Add MPEGC register configuration functionality
net/mlx5: Enable PCIe buffer congestion handling workaround via devlink

Moshe Shemesh (4):
devlink: Fix param set handling for string type
devlink: Fix param cmode driverinit for string type
devlink: Add helper function for safely copy string param
devlink: Add extack messages support to param set

drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 3 +-
drivers/net/ethernet/mellanox/mlx4/main.c | 6 +-
drivers/net/ethernet/mellanox/mlx5/core/Makefile | 3 +-
drivers/net/ethernet/mellanox/mlx5/core/devlink.c | 388 +++++++++++++++++++++
drivers/net/ethernet/mellanox/mlx5/core/devlink.h | 13 +
.../net/ethernet/mellanox/mlx5/core/diag/crdump.c | 223 ++++++++++++
drivers/net/ethernet/mellanox/mlx5/core/health.c | 3 +
drivers/net/ethernet/mellanox/mlx5/core/lib/mlx5.h | 4 +
.../net/ethernet/mellanox/mlx5/core/lib/pci_vsc.c | 320 +++++++++++++++++
.../net/ethernet/mellanox/mlx5/core/lib/pci_vsc.h | 56 +++
drivers/net/ethernet/mellanox/mlx5/core/main.c | 10 +-
include/linux/mlx5/driver.h | 5 +
include/net/devlink.h | 15 +-
net/core/devlink.c | 44 ++-
14 files changed, 1076 insertions(+), 17 deletions(-)
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/devlink.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/devlink.h
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/diag/crdump.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/pci_vsc.c
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/pci_vsc.h