mbox series

[rdma-next,00/12] Add SRQ and XRC support for ODP MRs

Message ID 20190122064851.6032-1-leon@kernel.org (mailing list archive)
Headers show
Series Add SRQ and XRC support for ODP MRs | expand

Message

Leon Romanovsky Jan. 22, 2019, 6:48 a.m. UTC
From: Leon Romanovsky <leonro@mellanox.com>

Hi,

This series extend ODP to work with SRQ and XRC. Being both per-operation
(e.g. RDMA write, RDMA read and atomic) and per-transport (e.g. RC, UD and XRC),
we extend IB/core and mlx5 driver to provide needed information to user space.

Thanks

Moni Shoua (12):
  IB/mlx5: Fix locking SRQ object in ODP event
  IB/core: Allocate bit for SRQ ODP support
  IB/uverbs: Expose XRC ODP device capabilities
  IB/mlx5: Remove useless check in ODP handler
  IB/mlx5: Clean mlx5_ib_mr_responder_pfault_handler() signature
  IB/mlx5: Add XRC initiator ODP support
  IB/mlx5: Let read user wqe also from SRQ buffer
  IB/mlx5: Add ODP SRQ support
  IB/mlx5: Advertise SRQ ODP support for supported transports
  net/mlx5: Add XRC transport to ODP device capabilities layout
  IB/mlx5: Advertise XRC ODP support
  net/mlx5: Set ODP SRQ support in firmware

 drivers/infiniband/core/uverbs_cmd.c          |   1 +
 drivers/infiniband/hw/mlx5/cq.c               |   4 +-
 drivers/infiniband/hw/mlx5/mlx5_ib.h          |   9 +-
 drivers/infiniband/hw/mlx5/odp.c              | 138 ++++++++++---
 drivers/infiniband/hw/mlx5/qp.c               | 192 +++++++++++++-----
 drivers/infiniband/hw/mlx5/srq.h              |   2 -
 drivers/infiniband/hw/mlx5/srq_cmd.c          |  16 +-
 .../net/ethernet/mellanox/mlx5/core/main.c    |  53 +++++
 include/linux/mlx5/device.h                   |   3 +
 include/linux/mlx5/mlx5_ifc.h                 |   5 +-
 include/rdma/ib_verbs.h                       |   2 +
 include/uapi/rdma/ib_user_verbs.h             |   2 +
 12 files changed, 331 insertions(+), 96 deletions(-)

--
2.19.1

Comments

Leon Romanovsky Jan. 24, 2019, 12:25 p.m. UTC | #1
On Tue, Jan 22, 2019 at 08:48:39AM +0200, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@mellanox.com>
>
> Hi,
>
> This series extend ODP to work with SRQ and XRC. Being both per-operation
> (e.g. RDMA write, RDMA read and atomic) and per-transport (e.g. RC, UD and XRC),
> we extend IB/core and mlx5 driver to provide needed information to user space.
>
> Thanks
>
> Moni Shoua (12):
>   IB/mlx5: Fix locking SRQ object in ODP event
>   IB/core: Allocate bit for SRQ ODP support
>   IB/uverbs: Expose XRC ODP device capabilities
>   IB/mlx5: Remove useless check in ODP handler
>   IB/mlx5: Clean mlx5_ib_mr_responder_pfault_handler() signature
>   IB/mlx5: Add XRC initiator ODP support
>   IB/mlx5: Let read user wqe also from SRQ buffer
>   IB/mlx5: Add ODP SRQ support
>   IB/mlx5: Advertise SRQ ODP support for supported transports
>   net/mlx5: Add XRC transport to ODP device capabilities layout
>   IB/mlx5: Advertise XRC ODP support
>   net/mlx5: Set ODP SRQ support in firmware


Doug, Jason,

Please pay attention that patches below should go to shared branch:
net/mlx5: Add XRC transport to ODP device capabilities layout
net/mlx5: Set ODP SRQ support in firmware

Thanks
Jason Gunthorpe Jan. 31, 2019, 11:27 p.m. UTC | #2
On Tue, Jan 22, 2019 at 08:48:39AM +0200, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@mellanox.com>
> 
> Hi,
> 
> This series extend ODP to work with SRQ and XRC. Being both per-operation
> (e.g. RDMA write, RDMA read and atomic) and per-transport (e.g. RC, UD and XRC),
> we extend IB/core and mlx5 driver to provide needed information to user space.
> 
> Thanks
> 
> Moni Shoua (12):
>   IB/mlx5: Fix locking SRQ object in ODP event
>   IB/core: Allocate bit for SRQ ODP support
>   IB/uverbs: Expose XRC ODP device capabilities
>   IB/mlx5: Remove useless check in ODP handler
>   IB/mlx5: Clean mlx5_ib_mr_responder_pfault_handler() signature
>   IB/mlx5: Add XRC initiator ODP support
>   IB/mlx5: Let read user wqe also from SRQ buffer
>   IB/mlx5: Add ODP SRQ support
>   IB/mlx5: Advertise SRQ ODP support for supported transports

I applied these patches to for-next

>   net/mlx5: Add XRC transport to ODP device capabilities layout
>   IB/mlx5: Advertise XRC ODP support
>   net/mlx5: Set ODP SRQ support in firmware

This might need some re-organizing - the last patch could be split
(possibly merge with the first) so the header changes can go to the
shared branch, but the handle_hca_cap_odp() stuff must only be applied
to the rdma tree.

I'm fine either way, if you don't want to split it send a commit ID
for the first patch on mlx5-next.

Thanks,
Jason
Leon Romanovsky Feb. 3, 2019, 10:54 a.m. UTC | #3
On Thu, Jan 31, 2019 at 04:27:39PM -0700, Jason Gunthorpe wrote:
> On Tue, Jan 22, 2019 at 08:48:39AM +0200, Leon Romanovsky wrote:
> > From: Leon Romanovsky <leonro@mellanox.com>
> >
> > Hi,
> >
> > This series extend ODP to work with SRQ and XRC. Being both per-operation
> > (e.g. RDMA write, RDMA read and atomic) and per-transport (e.g. RC, UD and XRC),
> > we extend IB/core and mlx5 driver to provide needed information to user space.
> >
> > Thanks
> >
> > Moni Shoua (12):
> >   IB/mlx5: Fix locking SRQ object in ODP event
> >   IB/core: Allocate bit for SRQ ODP support
> >   IB/uverbs: Expose XRC ODP device capabilities
> >   IB/mlx5: Remove useless check in ODP handler
> >   IB/mlx5: Clean mlx5_ib_mr_responder_pfault_handler() signature
> >   IB/mlx5: Add XRC initiator ODP support
> >   IB/mlx5: Let read user wqe also from SRQ buffer
> >   IB/mlx5: Add ODP SRQ support
> >   IB/mlx5: Advertise SRQ ODP support for supported transports
>
> I applied these patches to for-next
>
> >   net/mlx5: Add XRC transport to ODP device capabilities layout
> >   IB/mlx5: Advertise XRC ODP support
> >   net/mlx5: Set ODP SRQ support in firmware
>
> This might need some re-organizing - the last patch could be split
> (possibly merge with the first) so the header changes can go to the
> shared branch, but the handle_hca_cap_odp() stuff must only be applied
> to the rdma tree.
>
> I'm fine either way, if you don't want to split it send a commit ID
> for the first patch on mlx5-next.

I applied two following patches,

46861e3e88be net/mlx5: Set ODP SRQ support in firmware
dda7a817f287 net/mlx5: Add XRC transport to ODP device capabilities layout

Thanks

>
> Thanks,
> Jason
Jason Gunthorpe Feb. 4, 2019, 9:53 p.m. UTC | #4
On Sun, Feb 03, 2019 at 12:54:30PM +0200, Leon Romanovsky wrote:
> On Thu, Jan 31, 2019 at 04:27:39PM -0700, Jason Gunthorpe wrote:
> > On Tue, Jan 22, 2019 at 08:48:39AM +0200, Leon Romanovsky wrote:
> > > From: Leon Romanovsky <leonro@mellanox.com>
> > >
> > > Hi,
> > >
> > > This series extend ODP to work with SRQ and XRC. Being both per-operation
> > > (e.g. RDMA write, RDMA read and atomic) and per-transport (e.g. RC, UD and XRC),
> > > we extend IB/core and mlx5 driver to provide needed information to user space.
> > >
> > > Thanks
> > >
> > > Moni Shoua (12):
> > >   IB/mlx5: Fix locking SRQ object in ODP event
> > >   IB/core: Allocate bit for SRQ ODP support
> > >   IB/uverbs: Expose XRC ODP device capabilities
> > >   IB/mlx5: Remove useless check in ODP handler
> > >   IB/mlx5: Clean mlx5_ib_mr_responder_pfault_handler() signature
> > >   IB/mlx5: Add XRC initiator ODP support
> > >   IB/mlx5: Let read user wqe also from SRQ buffer
> > >   IB/mlx5: Add ODP SRQ support
> > >   IB/mlx5: Advertise SRQ ODP support for supported transports
> >
> > I applied these patches to for-next
> >
> > >   net/mlx5: Add XRC transport to ODP device capabilities layout
> > >   IB/mlx5: Advertise XRC ODP support
> > >   net/mlx5: Set ODP SRQ support in firmware
> >
> > This might need some re-organizing - the last patch could be split
> > (possibly merge with the first) so the header changes can go to the
> > shared branch, but the handle_hca_cap_odp() stuff must only be applied
> > to the rdma tree.
> >
> > I'm fine either way, if you don't want to split it send a commit ID
> > for the first patch on mlx5-next.
> 
> I applied two following patches,
> 
> 46861e3e88be net/mlx5: Set ODP SRQ support in firmware
> dda7a817f287 net/mlx5: Add XRC transport to ODP device capabilities layout

Okay, done..

Thanks,
Jason