archive mirror
 help / color / mirror / Atom feed
From: Leon Romanovsky <>
To: Doug Ledford <>, Jason Gunthorpe <>
Cc: Leon Romanovsky <>,,,
	Sagi Grimberg <>,
	Yishai Hadas <>
Subject: [PATCH rdma-next 0/9] Enable asynchronous event FD per object
Date: Wed,  6 May 2020 10:40:40 +0300	[thread overview]
Message-ID: <> (raw)

From: Leon Romanovsky <>

From Yishai:

This series enables applicable events objects (i.e. QP, SRQ, CQ, WQ) to
be created with their own asynchronous event FD.

Before this series any affiliated event on an object was reported on the
first asynchronous event FD that was created on the context without the
ability to create and use a dedicated FD for it.

With this series we enable granularity and control for the usage per
object, according to the application's usage.

For example, a secondary process that uses the same command FD as of the
master one, can create its own objects with its dedicated event FD to be
able to get the events for them once occurred, this couldn't be done before
this series.

To achieve the above, any 'create' method for the applicable objects was
extended to get from rdma-core its optional event FD, if wasn't supplied,
the default one from the context will be used.

As we prefer to not extend the 'write' mode KABIs anymore and fully
move to the 'ioct' mode, as part of this extension QP, SRQ and WQ
create/destroy commands were introduced over 'ioctl', the CQ KABI was
extended over its existing 'ioctl' create command.

As part of moving to 'ioctl' for the above objects the frame work was
improved to abort a fully created uobject upon some later error, some
flows were consolidated with the 'write' mode and few bugs were found
and fixed.


Jason Gunthorpe (2):
  RDMA/core: Allow the ioctl layer to abort a fully created uobject
  RDMA/core: Consolidate ib_create_srq flows

Yishai Hadas (7):
  IB/uverbs: Refactor related objects to use their own asynchronous
    event FD
  IB/uverbs: Extend CQ to get its own asynchronous event FD
  IB/uverbs: Cleanup wq/srq context usage from uverbs layer
  IB/uverbs: Introduce create/destroy SRQ commands over ioctl
  IB/uverbs: Fix create WQ to use the given user handle
  IB/uverbs: Introduce create/destroy WQ commands over ioctl
  IB/uverbs: Introduce create/destroy QP commands over ioctl

 drivers/infiniband/core/Makefile              |   5 +-
 drivers/infiniband/core/rdma_core.c           |  28 +-
 drivers/infiniband/core/rdma_core.h           |   7 +-
 drivers/infiniband/core/uverbs.h              |  21 +-
 drivers/infiniband/core/uverbs_cmd.c          |  73 ++--
 drivers/infiniband/core/uverbs_ioctl.c        |  22 +-
 drivers/infiniband/core/uverbs_main.c         |  16 +-
 drivers/infiniband/core/uverbs_std_types.c    |  95 -----
 drivers/infiniband/core/uverbs_std_types_cq.c |  17 +-
 drivers/infiniband/core/uverbs_std_types_mr.c |  12 +-
 drivers/infiniband/core/uverbs_std_types_qp.c | 401 ++++++++++++++++++
 .../infiniband/core/uverbs_std_types_srq.c    | 233 ++++++++++
 drivers/infiniband/core/uverbs_std_types_wq.c | 194 +++++++++
 drivers/infiniband/core/uverbs_uapi.c         |   3 +
 drivers/infiniband/core/verbs.c               |  29 +-
 drivers/infiniband/hw/mlx5/devx.c             |  10 +-
 drivers/infiniband/hw/mlx5/main.c             |  24 +-
 drivers/infiniband/hw/mlx5/qos.c              |  13 +-
 include/rdma/ib_verbs.h                       |  32 +-
 include/rdma/uverbs_ioctl.h                   |   3 +
 include/rdma/uverbs_std_types.h               |   2 +-
 include/rdma/uverbs_types.h                   |   3 +-
 include/uapi/rdma/ib_user_ioctl_cmds.h        |  81 ++++
 include/uapi/rdma/ib_user_ioctl_verbs.h       |  43 ++
 24 files changed, 1139 insertions(+), 228 deletions(-)
 create mode 100644 drivers/infiniband/core/uverbs_std_types_qp.c
 create mode 100644 drivers/infiniband/core/uverbs_std_types_srq.c
 create mode 100644 drivers/infiniband/core/uverbs_std_types_wq.c


                 reply	other threads:[~2020-05-06  7:40 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \ \ \ \ \ \ \
    --subject='Re: [PATCH rdma-next 0/9] Enable asynchronous event FD per object' \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).