linux/drivers/infiniband/hw/efa
Gal Pressman 2a152512a1 RDMA/efa: CQ notifications
This patch adds support for CQ notifications through the standard verbs
api.

In order to achieve that, a new event queue (EQ) object is introduced,
which is in charge of reporting completion events to the driver.  On
driver load, EQs are allocated and their affinity is set to a single
cpu. When a user app creates a CQ with a completion channel, the
completion vector number is converted to a EQ number, which is in charge
of reporting the CQ events.

In addition, the CQ creation admin command now returns an offset for the
CQ doorbell, which is mapped to the userspace provider and is used to arm
the CQ when requested by the user.

The EQs use a single doorbell (located on the registers BAR), which
encodes the EQ number and arm as part of the doorbell value.  The EQs are
polled by the driver on each new EQE, and arm it when the poll is
completed.

Link: https://lore.kernel.org/r/20211003105605.29222-1-galpress@amazon.com
Reviewed-by: Firas JahJah <firasj@amazon.com>
Reviewed-by: Yossi Leybovich <sleybo@amazon.com>
Signed-off-by: Gal Pressman <galpress@amazon.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
2021-10-06 19:47:18 -03:00
..
efa_admin_cmds_defs.h RDMA/efa: CQ notifications 2021-10-06 19:47:18 -03:00
efa_admin_defs.h RDMA/efa: CQ notifications 2021-10-06 19:47:18 -03:00
efa_com_cmd.c RDMA/efa: CQ notifications 2021-10-06 19:47:18 -03:00
efa_com_cmd.h RDMA/efa: CQ notifications 2021-10-06 19:47:18 -03:00
efa_com.c RDMA/efa: CQ notifications 2021-10-06 19:47:18 -03:00
efa_com.h RDMA/efa: CQ notifications 2021-10-06 19:47:18 -03:00
efa_common_defs.h RDMA/efa: Unified getters/setters for device structs bitmask access 2020-02-28 12:12:04 -04:00
efa_main.c RDMA/efa: CQ notifications 2021-10-06 19:47:18 -03:00
efa_regs_defs.h RDMA/efa: CQ notifications 2021-10-06 19:47:18 -03:00
efa_verbs.c RDMA/efa: CQ notifications 2021-10-06 19:47:18 -03:00
efa.h RDMA/efa: CQ notifications 2021-10-06 19:47:18 -03:00
Kconfig RDMA/efa: Add driver to Kconfig/Makefile 2019-05-07 12:47:47 -03:00
Makefile RDMA/efa: Add driver to Kconfig/Makefile 2019-05-07 12:47:47 -03:00