mbox series

[for-next,0/7] Doorbell Drop Prevention

Message ID 1687534717-17968-1-git-send-email-selvin.xavier@broadcom.com (mailing list archive)
Headers show
Series Doorbell Drop Prevention | expand

Message

Selvin Xavier June 23, 2023, 3:38 p.m. UTC
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 library patches will be posted soon. I am waiting
for my previous pull request for libbnxt_re to be merged before
initiating the new pull request.

Thanks,
Selvin Xavier

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, 378 insertions(+), 5 deletions(-)