All of lore.kernel.org
 help / color / mirror / Atom feed
* [pull request][net-next 00/15] Mellanox, mlx5 updates 2017-04-30
@ 2017-04-30 13:20 Saeed Mahameed
  2017-04-30 13:20 ` [net-next 01/15] net/mlx5e: Extendable vport representor netdev private data Saeed Mahameed
                   ` (15 more replies)
  0 siblings, 16 replies; 17+ messages in thread
From: Saeed Mahameed @ 2017-04-30 13:20 UTC (permalink / raw)
  To: David S. Miller
  Cc: netdev, Or Gerlitz, Hadar Hen-Zion, Ilya Lesokhin, Roi Dayan,
	Saeed Mahameed

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

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2017-05-01  3:02 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-30 13:20 [pull request][net-next 00/15] Mellanox, mlx5 updates 2017-04-30 Saeed Mahameed
2017-04-30 13:20 ` [net-next 01/15] net/mlx5e: Extendable vport representor netdev private data Saeed Mahameed
2017-04-30 13:20 ` [net-next 02/15] net/mlx5: Remove encap entry pointer from the eswitch flow attributes Saeed Mahameed
2017-04-30 13:20 ` [net-next 03/15] net/mlx5e: Move the encap entry structure from the eswitch header Saeed Mahameed
2017-04-30 13:20 ` [net-next 04/15] net/mlx5e: Remove output device parameter from create encap header helpers definition Saeed Mahameed
2017-04-30 13:20 ` [net-next 05/15] net/mlx5e: Use flag to properly monitor a flow rule offloading state Saeed Mahameed
2017-04-30 13:20 ` [net-next 06/15] net/mlx5e: Read neigh parameters with proper locking Saeed Mahameed
2017-04-30 13:20 ` [net-next 07/15] net/mlx5e: Add neighbour hash table to the representors Saeed Mahameed
2017-04-30 13:20 ` [net-next 08/15] net/mlx5e: Add support to neighbour update flow Saeed Mahameed
2017-04-30 13:20 ` [net-next 09/15] net/mlx5e: Update neighbour 'used' state using HW flow rules counters Saeed Mahameed
2017-04-30 13:20 ` [net-next 10/15] net/mlx5e: Act on delay probe time updates Saeed Mahameed
2017-04-30 13:20 ` [net-next 11/15] net/mlx5e: Optimize poll ICOSQ completion queue Saeed Mahameed
2017-04-30 13:20 ` [net-next 12/15] net/mlx5e: Use prefetchw when a write is to follow Saeed Mahameed
2017-04-30 13:20 ` [net-next 13/15] net/mlx5e: Use u8 as ownership type in mlx5e_get_cqe() Saeed Mahameed
2017-04-30 13:20 ` [net-next 14/15] net/mlx5e: Disable HW LRO when PCI is slower than link on striding RQ Saeed Mahameed
2017-04-30 13:20 ` [net-next 15/15] net/mlx5: E-Switch, Avoid redundant memory allocation Saeed Mahameed
2017-05-01  3:02 ` [pull request][net-next 00/15] Mellanox, mlx5 updates 2017-04-30 David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.