[PATCH for-next v2 0/7]RDMA/bnxt_re: Doorbell Drop Prevention

Selvin Xavier
2023-07-17T06:08:09Z

[-- Attachment #1: Type: text/plain, Size: 1843 bytes --]

The idea behind this series is to prevent Doorbell drops
on some of the Broadcom adapters that require Doorbell
moderation. This is achieved by pacing the doorbell writes
into the hardware FIFO. The rate at which individual doorbells
are written needs to be dynamically adjusted, because
it depends on the ability of the hardware to drain the
FIFO and on the number and behavior of individual
doorbell writers. When congestion is detected by the user
library, it notifies the driver and driver adjust the
pacing parameters dynamically in a shared page, which will
be used for pacing the Doorbells.

Currently this feature is targeted only for user applications.
The corresponding user lib patch is in the pull request.
https://github.com/linux-rdma/rdma-core/pull/1360

Thanks,
Selivn

v1 -> v2:
Rebased the patches on top of the latest for-next branch

Chandramohan Akula (7):
bnxt_en: Update HW interface headers
bnxt_en: Share the bar0 address with the RoCE driver
RDMA/bnxt_re: Initialize Doorbell pacing feature
RDMA/bnxt_re: Enable pacing support for the user apps
RDMA/bnxt_re: Update alloc_page uapi for pacing
RDMA/bnxt_re: Implement doorbell pacing algorithm
RDMA/bnxt_re: Add a new uapi for driver notification

drivers/infiniband/hw/bnxt_re/bnxt_re.h | 27 ++++
drivers/infiniband/hw/bnxt_re/ib_verbs.c | 51 +++++-
drivers/infiniband/hw/bnxt_re/ib_verbs.h | 2 +
drivers/infiniband/hw/bnxt_re/main.c | 220 ++++++++++++++++++++++++++
drivers/infiniband/hw/bnxt_re/qplib_res.h | 19 +++
drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h | 54 +++++++
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h | 1 +
include/uapi/rdma/bnxt_re-abi.h | 7 +
9 files changed, 379 insertions(+), 4 deletions(-)