mbox

[pull,request,net-next,00/13] Mellanox, BlueField SmartNIC

Message ID 20190216013452.21131-1-saeedm@mellanox.com
State Accepted
Delegated to: David Miller
Headers show

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git tags/mlx5-updates-2019-02-15

Message

Saeed Mahameed Feb. 16, 2019, 1:34 a.m. UTC
Hi Dave,

This series adds the support for Melanox BlueField SmartNIC.
For more information please see tag log below.

Please note the merge commit of mlx5-next at the base of the pull request:
259fae5a2cff ("Merge branch 'mlx5-next' of git://git.kernel.org/.../mellanox/linux")

Please pull and let me know if there is any problem.

Thanks,
Saeed.

---
The following changes since commit 259fae5a2cff72e19f82094fb73e2149f8d64396:

  Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux (2019-02-15 16:45:31 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git tags/mlx5-updates-2019-02-15

for you to fetch changes up to c96692fb8f3d0a161c6892ab9cc51a5e9992ccf2:

  net/mlx5: E-Switch, Allow transition to offloads mode for ECPF (2019-02-15 17:25:58 -0800)

----------------------------------------------------------------
Support Mellanox BlueField SmartNIC (mlx5-updates-2019-02-15)

Bodong Wang says,

BlueField device is a multi-core ARM processor in a highly integrated
system on chip coupled with the ConnectX interconnect controller.
BlueField device can be presented in one out of two modes:

- SEPARATED_HOST: ARM processors as a separated and orthogonal host
  like any other external host in the multi-host virtualization model.
- EMBEDDED_CPU: ARM processors as Embedded CPU (EC) and part of the
  external hosts virtualization model.

While existing driver already supports the device on separated_host
mode, this patch series focus on the functionalities of embedded_cpu
mode.

On embedded_cpu mode, BlueField device exposes regular network
controller PCI function in the BlueField host(e.g, x86). However, a
separate PCI function called Embedded CPU Physical Function(ECPF) is
also added to the ARM host side, where standard Linux distributions is
able to run on the ARM cores. Depends on the NV configuration from
firmware, ECPF can be the e-switch manager and firmware pages supplier.
If ECPF is configured as e-switch manager and page supplier, it will
take over the responsibilities from the PF on BlueField host includes:
- Owns, controls and manages all e-switch parts, and takes e-switch
  traffic by default. It also should perform ENABLE_HCA for the host
  PF just like a PF does for its VFs.
- Provides and manages the ICM host memory required for the HCA to
  store various contexts for itself, the PF and VFs belong the
  e-switch it manages.

The PF on BlueField host side is still responsible for:
- Control its own permanent MAC.
- PCI and SRIOV configurations and perform ENABLE_HCA for its VFs.

The ECPF can also retrieve information about the external host it
controls, like host identifier, PCI BDF and number of virtual functions.
As these parameters may be changed dynamically, an event will be triggered
to the driver on ECPF side.

----------------------------------------------------------------
Bodong Wang (13):
      net/mlx5: Correctly set LAG mode for ECPF
      net/mlx5: E-Switch, Properly refer to the esw manager vport
      net/mlx5: E-Switch, Properly refer to host PF vport as other vport
      net/mlx5: E-Switch, Refactor offloads flow steering init/cleanup
      net/mlx5: E-Switch, Split VF and special vports for offloads mode
      net/mlx5: E-Switch, Use getter and iterator to access vport/rep
      net/mlx5: E-Switch, Add state to eswitch vport representors
      net/mlx5: E-Switch, Support load/unload reps of specific vport types
      net/mlx5: E-Switch, Centralize repersentor reg/unreg to eswitch driver
      net/mlx5: E-Switch, Assign a different position for uplink rep and vport
      net/mlx5: E-Switch, Consider ECPF vport depends on eswitch ownership
      net/mlx5: E-Switch, Load/unload VF reps according to event from host PF
      net/mlx5: E-Switch, Allow transition to offloads mode for ECPF

 drivers/infiniband/hw/mlx5/ib_rep.c                |  20 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c   |  25 +-
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c  | 175 +++++---
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.h  |  65 ++-
 .../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 470 +++++++++++++++++----
 drivers/net/ethernet/mellanox/mlx5/core/lag.c      |   5 +
 drivers/net/ethernet/mellanox/mlx5/core/vport.c    |  10 +-
 include/linux/mlx5/driver.h                        |   5 +
 include/linux/mlx5/eswitch.h                       |  19 +-
 include/linux/mlx5/mlx5_ifc.h                      |   3 +-
 include/linux/mlx5/vport.h                         |  20 +-
 11 files changed, 617 insertions(+), 200 deletions(-)

Comments

David Miller Feb. 16, 2019, 8:11 p.m. UTC | #1
From: Saeed Mahameed <saeedm@mellanox.com>
Date: Fri, 15 Feb 2019 17:34:39 -0800

> This series adds the support for Melanox BlueField SmartNIC.
> For more information please see tag log below.
> 
> Please note the merge commit of mlx5-next at the base of the pull request:
> 259fae5a2cff ("Merge branch 'mlx5-next' of git://git.kernel.org/.../mellanox/linux")
> 
> Please pull and let me know if there is any problem.

Pulled, thanks for all of the contextual info, it really helps.

I'll push this out after my build tests complete.