Message ID | 1588758069-24464-1-git-send-email-yishaih@mellanox.com (mailing list archive) |
---|---|
Headers | show |
Series | verbs: Enable asynchronous event FD per object | expand |
On 5/6/2020 12:41 PM, Yishai Hadas wrote: > This series enables applicable events objects (i.e. QP, SRQ, CQ, WQ) to be > created with their own asynchronous event FD from KABI point of view. > > 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. > > For example, a secondary process that uses the same command FD as of the primary > 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. > > Further series on top of this one may expose some option to an application to > ask for a dedicated FD for its usage instead of using the default one, this may > enable achieving the above use case. > > 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 part of kernel side. > > As we prefer to not extend the 'write' mode KABIs anymore and fully move to the > 'ioct' mode, 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 few bugs were found and > fixed. > > The matching kernel part was sent into rdma-next. > PR: > https://github.com/linux-rdma/rdma-core/pull/753 > > > Jason Gunthorpe (1): > mlx4: Delete comp_mask from verbs_srq > > Yishai Hadas (7): > Update kernel headers > verbs: Extend CQ KABI to get an async FD > verbs: Fix ibv_get_srq_num() man page > verbs: Move SRQ create and destroy to ioctl > verbs: Fix ibv_create_wq() to set wq_context > verbs: Move WQ create and destroy to ioctl > verbs: Move QP create and destroy commands to ioctl > > kernel-headers/rdma/ib_user_ioctl_cmds.h | 81 +++++ > kernel-headers/rdma/ib_user_ioctl_verbs.h | 43 +++ > libibverbs/CMakeLists.txt | 3 + > libibverbs/cmd.c | 481 ------------------------------ > libibverbs/cmd_cq.c | 7 +- > libibverbs/cmd_fallback.c | 2 +- > libibverbs/cmd_qp.c | 476 +++++++++++++++++++++++++++++ > libibverbs/cmd_srq.c | 279 +++++++++++++++++ > libibverbs/cmd_wq.c | 173 +++++++++++ > libibverbs/driver.h | 25 +- > libibverbs/kern-abi.h | 11 + > libibverbs/man/ibv_get_srq_num.3.md | 2 +- > libibverbs/verbs.c | 14 - > libibverbs/verbs.h | 1 + > providers/efa/verbs.c | 2 +- > providers/mlx4/mlx4.c | 2 +- > providers/mlx4/mlx4.h | 1 + > providers/mlx4/srq.c | 1 - > providers/mlx4/verbs.c | 17 +- > providers/mlx5/verbs.c | 16 +- > 20 files changed, 1104 insertions(+), 533 deletions(-) > create mode 100644 libibverbs/cmd_qp.c > create mode 100644 libibverbs/cmd_srq.c > create mode 100644 libibverbs/cmd_wq.c > The PR was merged. Yishai