Hi dave, This series includes updates for mlx5e net device driver, with a couple of major features and some misc updates.
Please notice the mlx5-next merge patch at the beginning: "Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux" For more information please see tag log below. Please pull and let me know if there's any problem. Thanks, Saeed. --- The following changes since commit 681d5d071c8bd5533a14244c0d55d1c0e30aa989: Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux (2018-07-18 15:53:31 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git tags/mlx5e-updates-2018-07-18 for you to fetch changes up to a0ba57c09676689eb35f13d48990c9674c9baad4: net/mlx5e: Use PARTIAL_GSO for UDP segmentation (2018-07-18 17:26:28 -0700) ---------------------------------------------------------------- mlx5e-updates-2018-07-18 This series includes update for mlx5e net device driver. 1) From Feras Daoud, Added the support for firmware log tracing, first by introducing the firmware API needed for the task and then For each PF do the following: 1- Allocate memory for the tracer strings database and read it from the FW to the SW. 2- Allocate and dma map tracer buffers. Traces that will be written into the buffer will be parsed as a group of one or more traces, referred to as trace message. The trace message represents a C-like printf string. Once a new trace is available FW will generate an event indicates new trace/s are available and the driver will parse them and dump them using tracepoints event tracing Enable mlx5 fw tracing by: echo 1 > /sys/kernel/debug/tracing/events/mlx5/mlx5_fw/enable Read traces by: cat /sys/kernel/debug/tracing/trace 2) From Eran Ben Elisha, Support PCIe buffer congestion handling via Devlink, using the new devlink device parameters API, added the new parameters: - Congestion action HW 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) From Natali, Set ECN for received packets using CQE indication. Using Eran's congestion settings a user can enable ECN marking, on such case driver must update ECN CE IP fields when requested by firmware (congestion is sensed). 4) From Roi Dayan, Remove redundant WARN when we cannot find neigh entry 5) From Jianbo Liu, TC double vlan support - Support offloading tc double vlan headers match - Support offloading double vlan push/pop tc actions 6) From Boris, re-visit UDP GSO, remove the splitting of UDP_GSO_L4 packets in the driver, and exposes UDP_GSO_L4 as a PARTIAL_GSO feature. ---------------------------------------------------------------- Boris Pismenny (1): net/mlx5e: Use PARTIAL_GSO for UDP segmentation Eran Ben Elisha (3): net/mlx5: Move all devlink related functions calls to devlink.c net/mlx5: Add MPEGC register configuration functionality net/mlx5: Support PCIe buffer congestion handling via Devlink Feras Daoud (5): net/mlx5: FW tracer, implement tracer logic net/mlx5: FW tracer, create trace buffer and copy strings database net/mlx5: FW tracer, events handling net/mlx5: FW tracer, parse traces and kernel tracing support net/mlx5: FW tracer, Enable tracing Jianbo Liu (3): net/mlx5e: Support offloading tc double vlan headers match net/mlx5e: Refactor tc vlan push/pop actions offloading net/mlx5e: Support offloading double vlan push/pop tc actions Natali Shechtman (1): net/mlx5e: Set ECN for received packets using CQE indication Roi Dayan (1): net/mlx5e: Remove redundant WARN when we cannot find neigh entry Saeed Mahameed (2): net/mlx5: FW tracer, register log buffer memory key net/mlx5: FW tracer, Add debug prints drivers/net/ethernet/mellanox/mlx5/core/Makefile | 6 +- drivers/net/ethernet/mellanox/mlx5/core/devlink.c | 267 ++++++ drivers/net/ethernet/mellanox/mlx5/core/devlink.h | 41 + .../ethernet/mellanox/mlx5/core/diag/fw_tracer.c | 947 +++++++++++++++++++++ .../ethernet/mellanox/mlx5/core/diag/fw_tracer.h | 175 ++++ .../mellanox/mlx5/core/diag/fw_tracer_tracepoint.h | 78 ++ .../mellanox/mlx5/core/en_accel/en_accel.h | 27 +- .../ethernet/mellanox/mlx5/core/en_accel/rxtx.c | 109 --- .../ethernet/mellanox/mlx5/core/en_accel/rxtx.h | 14 - drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 9 +- drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 35 +- drivers/net/ethernet/mellanox/mlx5/core/en_stats.c | 3 + drivers/net/ethernet/mellanox/mlx5/core/en_stats.h | 2 + drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 134 ++- drivers/net/ethernet/mellanox/mlx5/core/eq.c | 11 + drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 21 +- .../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 23 +- drivers/net/ethernet/mellanox/mlx5/core/main.c | 23 +- include/linux/mlx5/device.h | 7 + include/linux/mlx5/driver.h | 3 + 20 files changed, 1745 insertions(+), 190 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/fw_tracer.c create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer_tracepoint.h delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/rxtx.c delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_accel/rxtx.h