mbox series

[rdma-next,0/4] User space steering

Message ID 20190505140714.8741-1-leon@kernel.org (mailing list archive)
Headers show
Series User space steering | expand

Message

Leon Romanovsky May 5, 2019, 2:07 p.m. UTC
From: Leon Romanovsky <leonro@mellanox.com>

Changelog v0 -> v1:
 * Removed phys_addr dependency from kconfig

-------------------------------------------------------------------------
From Ariel,

This series of patches adds user space managed steering infrastructure
to the mlx5_ib driver.

User space managed steering requires the means to access a dedicated
memory space that is used by the device to store the packet steering
and header modification tables and rules in order to manage them
directly without the device's firmware involvement. This dedicated memory
is part of the ICM memory space.

The changes are introducing the mlx5_ib API to allocate, deallocate and
register this dedicated SW ICM memory via the existing device memory API
using a private attribute which specifies the memory type.

The allocated memory itself is not IO mapped and user can only access it
using remote RDMA operations.

In addition, the series exposed the ICM address of the receive transport
interface (TIR) of Raw Packet and RSS QPs to user since they are
required to properly create and insert steering rules that direct flows
to these QPs.

Thanks

Ariel Levkovich (4):
  IB/mlx5: Support device memory type attribute
  IB/mlx5: Warn on allocated MEMIC buffers during cleanup
  IB/mlx5: Add steering SW ICM device memory type
  IB/mlx5: Device resource control for privileged DEVX user

 drivers/infiniband/hw/mlx5/cmd.c          | 155 +++++++++++--
 drivers/infiniband/hw/mlx5/cmd.h          |   8 +-
 drivers/infiniband/hw/mlx5/devx.c         |   4 +
 drivers/infiniband/hw/mlx5/main.c         | 267 ++++++++++++++++++----
 drivers/infiniband/hw/mlx5/mlx5_ib.h      |  40 +++-
 drivers/infiniband/hw/mlx5/mr.c           |  39 +++-
 include/uapi/rdma/mlx5_user_ioctl_cmds.h  |   1 +
 include/uapi/rdma/mlx5_user_ioctl_verbs.h |   6 +
 8 files changed, 435 insertions(+), 85 deletions(-)

--
2.20.1

Comments

Jason Gunthorpe May 6, 2019, 3:56 p.m. UTC | #1
On Sun, May 05, 2019 at 05:07:10PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@mellanox.com>
> 
> Changelog v0 -> v1:
>  * Removed phys_addr dependency from kconfig
> 
> -------------------------------------------------------------------------
> >From Ariel,
> 
> This series of patches adds user space managed steering infrastructure
> to the mlx5_ib driver.
> 
> User space managed steering requires the means to access a dedicated
> memory space that is used by the device to store the packet steering
> and header modification tables and rules in order to manage them
> directly without the device's firmware involvement. This dedicated memory
> is part of the ICM memory space.
> 
> The changes are introducing the mlx5_ib API to allocate, deallocate and
> register this dedicated SW ICM memory via the existing device memory API
> using a private attribute which specifies the memory type.
> 
> The allocated memory itself is not IO mapped and user can only access it
> using remote RDMA operations.
> 
> In addition, the series exposed the ICM address of the receive transport
> interface (TIR) of Raw Packet and RSS QPs to user since they are
> required to properly create and insert steering rules that direct flows
> to these QPs.
> 
> Thanks
> 
> Ariel Levkovich (4):
>   IB/mlx5: Support device memory type attribute
>   IB/mlx5: Warn on allocated MEMIC buffers during cleanup
>   IB/mlx5: Add steering SW ICM device memory type
>   IB/mlx5: Device resource control for privileged DEVX user

Applied to for-next, thanks

Jason