[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170430132016.27012-1-saeedm@mellanox.com>
Date: Sun, 30 Apr 2017 16:20:01 +0300
From: Saeed Mahameed <saeedm@...lanox.com>
To: "David S. Miller" <davem@...emloft.net>
Cc: netdev@...r.kernel.org, Or Gerlitz <ogerlitz@...lanox.com>,
Hadar Hen-Zion <hadarh@...lanox.com>,
Ilya Lesokhin <ilyal@...lanox.com>,
Roi Dayan <roid@...lanox.com>,
Saeed Mahameed <saeedm@...lanox.com>
Subject: [pull request][net-next 00/15] Mellanox, mlx5 updates 2017-04-30
Hi Dave,
This series contains two sets of patches to the mlx5 driver,
1. Nine patches (mostly from Hadar) to add 'mlx5 neigh update' feature.
2. Six misc patches.
For more details please see below.
Sorry for the last minute submission, originally I planned to submit before
weekend, but in order to provide clean patches, we had to deal with some
auto build issues first.
Please pull and let me know if there's any problem.
---
The following changes since commit c08bac03d2894113bdb114e66e6ada009defb120:
Merge branch '10GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue (2017-04-29 23:16:20 -0400)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git tags/mlx5-updates-2017-04-30
for you to fetch changes up to 0a0ab1d2cc5d5e68191488235074b5b30d793bb7:
net/mlx5: E-Switch, Avoid redundant memory allocation (2017-04-30 16:03:21 +0300)
----------------------------------------------------------------
mlx5-updates-2017-04-30
Or says:
================
mlx5 neigh update
This series (whose code name is 'neigh update') from Hadar, enhances the
mlx5 TC IP tunnel offloads to deal with changes to tunnel destination
neighbours used in offloaded flows which involved encapsulation.
In order to keep track on the validity state of such neighbours, we register
a netevent notifier callback and act on NEIGH_UPDATE events: if a neighbour
becomes valid, offload the related flows to HW (the other way around when
neigh becomes invalid) and similarly when a neigh mac addresses changes.
Since this traffic is offloaded from the host OS, the neighbour for the IP
tunnel destination can mistakenly become STALE and deleted by the kernel
since its 'used' value wasn't changed. To address that, we proactively
update the neighbour 'used' value every DELAY_PROBE_TIME seconds, using
time stamps generated by the existing driver code for HW flow counters.
We use the DELAY_PROBE_TIME_UPDATE event to adjust the frequency of the updates.
Prior to the core of the series, there's a patch from Saeed that introduces an
extendable vport representor implementation scheme. It provides a separation
between the eswitch to the netdev related aspects of the representors.
We would like to thank Ido Schimmel and Ilya Lesokhin for their coaching && advice
through the long design and review cycles while we struggled to understand and
(hopefully correctly) implement the locking around the different driver flows(..) .
- Or.
=================
Misc Updates:
>From Tariq:
Some small performance and trivial code optimization for mlx5 netdev driver
- Optimize poll ICOSQ completion queue
- Use prefetchw when a write is to follow
- Use u8 as ownership type in mlx5e_get_cqe()
>From Eran:
- Disable LRO by default on specific setups
>From Eli:
- Small cleanup for E-Switch to avoid redundant allocation
Thanks,
Saeed.
----------------------------------------------------------------
Eli Cohen (1):
net/mlx5: E-Switch, Avoid redundant memory allocation
Eran Ben Elisha (1):
net/mlx5e: Disable HW LRO when PCI is slower than link on striding RQ
Hadar Hen Zion (7):
net/mlx5e: Remove output device parameter from create encap header helpers definition
net/mlx5e: Use flag to properly monitor a flow rule offloading state
net/mlx5e: Read neigh parameters with proper locking
net/mlx5e: Add neighbour hash table to the representors
net/mlx5e: Add support to neighbour update flow
net/mlx5e: Update neighbour 'used' state using HW flow rules counters
net/mlx5e: Act on delay probe time updates
Or Gerlitz (2):
net/mlx5: Remove encap entry pointer from the eswitch flow attributes
net/mlx5e: Move the encap entry structure from the eswitch header
Saeed Mahameed (1):
net/mlx5e: Extendable vport representor netdev private data
Tariq Toukan (3):
net/mlx5e: Optimize poll ICOSQ completion queue
net/mlx5e: Use prefetchw when a write is to follow
net/mlx5e: Use u8 as ownership type in mlx5e_get_cqe()
drivers/net/ethernet/mellanox/mlx5/core/en.h | 20 -
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 98 ++--
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 574 +++++++++++++++++++--
drivers/net/ethernet/mellanox/mlx5/core/en_rep.h | 145 ++++++
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 6 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 341 +++++++++---
drivers/net/ethernet/mellanox/mlx5/core/en_tc.h | 9 +
drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c | 66 +--
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 20 +-
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 25 +-
.../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 5 +
.../net/ethernet/mellanox/mlx5/core/fs_counters.c | 24 +-
include/linux/mlx5/driver.h | 1 +
14 files changed, 1074 insertions(+), 262 deletions(-)
create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_rep.h
Powered by blists - more mailing lists