mbox series

[rdma-next,00/10] Relaxed ordering memory regions

Message ID 1578506740-22188-1-git-send-email-yishaih@mellanox.com (mailing list archive)
Headers show
Series Relaxed ordering memory regions | expand

Message

Yishai Hadas Jan. 8, 2020, 6:05 p.m. UTC
This series adds an ioctl command to allocate an async event file followed by a
new ioctl command to get a device context.

The get device context command enables reading some core generic capabilities
such as supporting an optional MR access flags by IB core and its related
drivers.

Once the above is enabled, a new optional MR access flag named
IB_UVERBS_ACCESS_RELAXED_ORDERING is added and is used by mlx5 driver.

This optional flag allows creation of relaxed ordering memory regions.  Access
through such MRs can improve performance by allowing the system to reorder
certain accesses.

As relaxed ordering is an optimization, drivers that do not support it can
simply ignore it.

Note: This series relies on the 'Refactoring FD usage' series [1] that was sent
to rdma-next.
[1] https://patchwork.kernel.org/project/linux-rdma/list/?series=225541

Yishai

Jason Gunthorpe (3):
  RDMA/core: Add UVERBS_METHOD_ASYNC_EVENT_ALLOC
  RDMA/core: Remove ucontext_lock from the uverbs_destry_ufile_hw() path
  RDMA/uverbs: Add ioctl command to get a device context

Michael Guralnik (7):
  net/mlx5: Expose relaxed ordering bits
  RDMA/uverbs: Verify MR access flags
  RDMA/core: Add optional access flags range
  RDMA/efa: Allow passing of optional access flags for MR registration
  RDMA/uverbs: Add new relaxed ordering memory region access flag
  RDMA/core: Add the core support field to METHOD_GET_CONTEXT
  RDMA/mlx5: Set relaxed ordering when requested

 drivers/infiniband/core/rdma_core.c                |  21 +---
 drivers/infiniband/core/uverbs.h                   |   3 +
 drivers/infiniband/core/uverbs_cmd.c               | 133 ++++++++++++---------
 drivers/infiniband/core/uverbs_main.c              |  11 +-
 .../infiniband/core/uverbs_std_types_async_fd.c    |  21 +++-
 drivers/infiniband/core/uverbs_std_types_device.c  |  38 ++++++
 drivers/infiniband/hw/efa/efa_verbs.c              |   1 +
 drivers/infiniband/hw/mlx5/mlx5_ib.h               |   5 +-
 drivers/infiniband/hw/mlx5/mr.c                    |  19 ++-
 drivers/infiniband/hw/mlx5/odp.c                   |   2 +-
 drivers/infiniband/hw/mlx5/qp.c                    |   2 +-
 include/linux/mlx5/mlx5_ifc.h                      |   7 +-
 include/rdma/ib_verbs.h                            |   8 +-
 include/uapi/rdma/ib_user_ioctl_cmds.h             |  14 +++
 include/uapi/rdma/ib_user_ioctl_verbs.h            |  12 ++
 15 files changed, 209 insertions(+), 88 deletions(-)

Comments

Jason Gunthorpe Jan. 15, 2020, 6:08 p.m. UTC | #1
On Wed, Jan 08, 2020 at 08:05:30PM +0200, Yishai Hadas wrote:
> This series adds an ioctl command to allocate an async event file followed by a
> new ioctl command to get a device context.
> 
> The get device context command enables reading some core generic capabilities
> such as supporting an optional MR access flags by IB core and its related
> drivers.
> 
> Once the above is enabled, a new optional MR access flag named
> IB_UVERBS_ACCESS_RELAXED_ORDERING is added and is used by mlx5 driver.
> 
> This optional flag allows creation of relaxed ordering memory regions.  Access
> through such MRs can improve performance by allowing the system to reorder
> certain accesses.
> 
> As relaxed ordering is an optimization, drivers that do not support it can
> simply ignore it.
> 
> Note: This series relies on the 'Refactoring FD usage' series [1] that was sent
> to rdma-next.
> [1] https://patchwork.kernel.org/project/linux-rdma/list/?series=225541
> 
> Yishai
> 
> Jason Gunthorpe (3):
>   RDMA/core: Add UVERBS_METHOD_ASYNC_EVENT_ALLOC
>   RDMA/core: Remove ucontext_lock from the uverbs_destry_ufile_hw() path
>   RDMA/uverbs: Add ioctl command to get a device context
> 
> Michael Guralnik (7):
>   net/mlx5: Expose relaxed ordering bits
>   RDMA/uverbs: Verify MR access flags
>   RDMA/core: Add optional access flags range
>   RDMA/efa: Allow passing of optional access flags for MR registration
>   RDMA/uverbs: Add new relaxed ordering memory region access flag
>   RDMA/core: Add the core support field to METHOD_GET_CONTEXT
>   RDMA/mlx5: Set relaxed ordering when requested

This looks OK, can you update the shared branch please

Thanks,
Jason
Leon Romanovsky Jan. 16, 2020, 9:20 a.m. UTC | #2
On Wed, Jan 15, 2020 at 02:08:48PM -0400, Jason Gunthorpe wrote:
> On Wed, Jan 08, 2020 at 08:05:30PM +0200, Yishai Hadas wrote:
> > This series adds an ioctl command to allocate an async event file followed by a
> > new ioctl command to get a device context.
> >
> > The get device context command enables reading some core generic capabilities
> > such as supporting an optional MR access flags by IB core and its related
> > drivers.
> >
> > Once the above is enabled, a new optional MR access flag named
> > IB_UVERBS_ACCESS_RELAXED_ORDERING is added and is used by mlx5 driver.
> >
> > This optional flag allows creation of relaxed ordering memory regions.  Access
> > through such MRs can improve performance by allowing the system to reorder
> > certain accesses.
> >
> > As relaxed ordering is an optimization, drivers that do not support it can
> > simply ignore it.
> >
> > Note: This series relies on the 'Refactoring FD usage' series [1] that was sent
> > to rdma-next.
> > [1] https://patchwork.kernel.org/project/linux-rdma/list/?series=225541
> >
> > Yishai
> >
> > Jason Gunthorpe (3):
> >   RDMA/core: Add UVERBS_METHOD_ASYNC_EVENT_ALLOC
> >   RDMA/core: Remove ucontext_lock from the uverbs_destry_ufile_hw() path
> >   RDMA/uverbs: Add ioctl command to get a device context
> >
> > Michael Guralnik (7):
> >   net/mlx5: Expose relaxed ordering bits
> >   RDMA/uverbs: Verify MR access flags
> >   RDMA/core: Add optional access flags range
> >   RDMA/efa: Allow passing of optional access flags for MR registration
> >   RDMA/uverbs: Add new relaxed ordering memory region access flag
> >   RDMA/core: Add the core support field to METHOD_GET_CONTEXT
> >   RDMA/mlx5: Set relaxed ordering when requested
>
> This looks OK, can you update the shared branch please

Thanks, applied
f4db8e8b0dc3 net/mlx5: Expose relaxed ordering bits

>
> Thanks,
> Jason
Jason Gunthorpe Jan. 16, 2020, 8:11 p.m. UTC | #3
On Thu, Jan 16, 2020 at 11:20:08AM +0200, Leon Romanovsky wrote:
> On Wed, Jan 15, 2020 at 02:08:48PM -0400, Jason Gunthorpe wrote:
> > On Wed, Jan 08, 2020 at 08:05:30PM +0200, Yishai Hadas wrote:
> > > This series adds an ioctl command to allocate an async event file followed by a
> > > new ioctl command to get a device context.
> > >
> > > The get device context command enables reading some core generic capabilities
> > > such as supporting an optional MR access flags by IB core and its related
> > > drivers.
> > >
> > > Once the above is enabled, a new optional MR access flag named
> > > IB_UVERBS_ACCESS_RELAXED_ORDERING is added and is used by mlx5 driver.
> > >
> > > This optional flag allows creation of relaxed ordering memory regions.  Access
> > > through such MRs can improve performance by allowing the system to reorder
> > > certain accesses.
> > >
> > > As relaxed ordering is an optimization, drivers that do not support it can
> > > simply ignore it.
> > >
> > > Note: This series relies on the 'Refactoring FD usage' series [1] that was sent
> > > to rdma-next.
> > > [1] https://patchwork.kernel.org/project/linux-rdma/list/?series=225541
> > >
> > > Yishai
> > >
> > > Jason Gunthorpe (3):
> > >   RDMA/core: Add UVERBS_METHOD_ASYNC_EVENT_ALLOC
> > >   RDMA/core: Remove ucontext_lock from the uverbs_destry_ufile_hw() path
> > >   RDMA/uverbs: Add ioctl command to get a device context
> > >
> > > Michael Guralnik (7):
> > >   net/mlx5: Expose relaxed ordering bits
> > >   RDMA/uverbs: Verify MR access flags
> > >   RDMA/core: Add optional access flags range
> > >   RDMA/efa: Allow passing of optional access flags for MR registration
> > >   RDMA/uverbs: Add new relaxed ordering memory region access flag
> > >   RDMA/core: Add the core support field to METHOD_GET_CONTEXT
> > >   RDMA/mlx5: Set relaxed ordering when requested
> >
> > This looks OK, can you update the shared branch please
> 
> Thanks, applied
> f4db8e8b0dc3 net/mlx5: Expose relaxed ordering bits

Okay, applied to for-next

Thanks,
Jason