From: Leon Romanovsky <leon@kernel.org> To: Doug Ledford <dledford@redhat.com>, Jason Gunthorpe <jgg@mellanox.com> Cc: Leon Romanovsky <leonro@mellanox.com>, RDMA mailing list <linux-rdma@vger.kernel.org>, Yishai Hadas <yishaih@mellanox.com>, Saeed Mahameed <saeedm@mellanox.com>, linux-netdev <netdev@vger.kernel.org> Subject: [PATCH rdma-next v1 00/12] DEVX asynchronous events Date: Tue, 18 Jun 2019 20:15:28 +0300 [thread overview] Message-ID: <20190618171540.11729-1-leon@kernel.org> (raw) From: Leon Romanovsky <leonro@mellanox.com> Changelog: v0 -> v1: * Fix the unbind / hot unplug flows to work properly. * Fix Ref count handling on the eventfd mode in some flow. * Rebased to latest rdma-next Thanks ------------------------------------------------------------------------------------ From Yishai: This series enables RDMA applications that use the DEVX interface to subscribe and read device asynchronous events. The solution is designed to allow extension of events in the future without need to perform any changes in the driver code. To enable that few changes had been done in mlx5_core, it includes: * Reading device event capabilities that are user related (affiliated and un-affiliated) and set the matching mask upon creating the matching EQ. * Enable DEVX/mlx5_ib to register for ANY event instead of the option to get some hard-coded ones. * Enable DEVX/mlx5_ib to get the device raw data for CQ completion events. * Enhance mlx5_core_create/destroy CQ to enable DEVX using them so that CQ events will be reported as well. In mlx5_ib layer the below changes were done: * A new DEVX API was introduced to allocate an event channel by using the uverbs FD object type. * Implement the FD channel operations to enable read/poo/close over it. * A new DEVX API was introduced to subscribe for specific events over an event channel. * Manage an internal data structure over XA(s) to subscribe/dispatch events over the different event channels. * Use from DEVX the mlx5_core APIs to create/destroy a CQ to be able to get its relevant events. Yishai Yishai Hadas (12): net/mlx5: Fix mlx5_core_destroy_cq() error flow net/mlx5: Use event mask based on device capabilities net/mlx5: Expose the API to register for ANY event net/mlx5: mlx5_core_create_cq() enhancements net/mlx5: Report a CQ error event only when a handler was set net/mlx5: Report EQE data upon CQ completion net/mlx5: Expose device definitions for object events IB/mlx5: Introduce MLX5_IB_OBJECT_DEVX_ASYNC_EVENT_FD IB/mlx5: Register DEVX with mlx5_core to get async events IB/mlx5: Enable subscription for device events over DEVX IB/mlx5: Implement DEVX dispatching event IB/mlx5: Add DEVX support for CQ events drivers/infiniband/hw/mlx5/cq.c | 5 +- drivers/infiniband/hw/mlx5/devx.c | 1082 ++++++++++++++++- drivers/infiniband/hw/mlx5/main.c | 10 +- drivers/infiniband/hw/mlx5/mlx5_ib.h | 12 + drivers/infiniband/hw/mlx5/odp.c | 3 +- drivers/infiniband/hw/mlx5/qp.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/cq.c | 21 +- drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 +- .../net/ethernet/mellanox/mlx5/core/en_main.c | 3 +- .../net/ethernet/mellanox/mlx5/core/en_txrx.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/eq.c | 68 +- .../ethernet/mellanox/mlx5/core/fpga/conn.c | 6 +- drivers/net/ethernet/mellanox/mlx5/core/fw.c | 6 + .../net/ethernet/mellanox/mlx5/core/lib/eq.h | 5 +- include/linux/mlx5/cq.h | 6 +- include/linux/mlx5/device.h | 6 +- include/linux/mlx5/driver.h | 2 + include/linux/mlx5/eq.h | 4 +- include/linux/mlx5/mlx5_ifc.h | 34 +- include/uapi/rdma/mlx5_user_ioctl_cmds.h | 19 + include/uapi/rdma/mlx5_user_ioctl_verbs.h | 9 + 21 files changed, 1237 insertions(+), 70 deletions(-) -- 2.20.1
next reply other threads:[~2019-06-18 17:15 UTC|newest] Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-18 17:15 Leon Romanovsky [this message] 2019-06-18 17:15 ` [PATCH mlx5-next v1 01/12] net/mlx5: Fix mlx5_core_destroy_cq() error flow Leon Romanovsky 2019-06-18 17:15 ` [PATCH mlx5-next v1 02/12] net/mlx5: Use event mask based on device capabilities Leon Romanovsky 2019-06-27 0:23 ` Saeed Mahameed 2019-06-18 17:15 ` [PATCH mlx5-next v1 03/12] net/mlx5: Expose the API to register for ANY event Leon Romanovsky 2019-06-18 17:15 ` [PATCH mlx5-next v1 04/12] net/mlx5: mlx5_core_create_cq() enhancements Leon Romanovsky 2019-06-18 17:15 ` [PATCH mlx5-next v1 05/12] net/mlx5: Report a CQ error event only when a handler was set Leon Romanovsky 2019-06-18 17:15 ` [PATCH mlx5-next v1 06/12] net/mlx5: Report EQE data upon CQ completion Leon Romanovsky 2019-06-18 17:15 ` [PATCH mlx5-next v1 07/12] net/mlx5: Expose device definitions for object events Leon Romanovsky 2019-06-18 17:15 ` [PATCH rdma-next v1 08/12] IB/mlx5: Introduce MLX5_IB_OBJECT_DEVX_ASYNC_EVENT_FD Leon Romanovsky 2019-06-24 11:51 ` Jason Gunthorpe 2019-06-24 13:25 ` Yishai Hadas 2019-06-24 14:30 ` Jason Gunthorpe 2019-06-18 17:15 ` [PATCH rdma-next v1 09/12] IB/mlx5: Register DEVX with mlx5_core to get async events Leon Romanovsky 2019-06-24 11:52 ` Jason Gunthorpe 2019-06-24 13:36 ` Yishai Hadas 2019-06-24 14:30 ` Jason Gunthorpe 2019-06-18 17:15 ` [PATCH rdma-next v1 10/12] IB/mlx5: Enable subscription for device events over DEVX Leon Romanovsky 2019-06-24 11:57 ` Jason Gunthorpe 2019-06-24 16:13 ` Yishai Hadas 2019-06-24 17:56 ` Jason Gunthorpe 2019-06-18 17:15 ` [PATCH rdma-next v1 11/12] IB/mlx5: Implement DEVX dispatching event Leon Romanovsky 2019-06-24 12:03 ` Jason Gunthorpe 2019-06-24 16:55 ` Yishai Hadas 2019-06-24 18:06 ` Jason Gunthorpe 2019-06-25 14:41 ` Yishai Hadas 2019-06-25 20:23 ` Jason Gunthorpe 2019-06-18 17:15 ` [PATCH rdma-next v1 12/12] IB/mlx5: Add DEVX support for CQ events Leon Romanovsky 2019-06-24 12:04 ` Jason Gunthorpe 2019-06-24 17:03 ` Yishai Hadas 2019-06-24 18:06 ` Jason Gunthorpe 2019-06-18 18:51 ` [PATCH rdma-next v1 00/12] DEVX asynchronous events Saeed Mahameed 2019-06-19 4:45 ` Leon Romanovsky 2019-06-24 21:57 ` Saeed Mahameed 2019-06-30 8:53 ` Leon Romanovsky
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: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190618171540.11729-1-leon@kernel.org \ --to=leon@kernel.org \ --cc=dledford@redhat.com \ --cc=jgg@mellanox.com \ --cc=leonro@mellanox.com \ --cc=linux-rdma@vger.kernel.org \ --cc=netdev@vger.kernel.org \ --cc=saeedm@mellanox.com \ --cc=yishaih@mellanox.com \ --subject='Re: [PATCH rdma-next v1 00/12] DEVX asynchronous events' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * 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).