Message ID | 1689573194-27687-1-git-send-email-selvin.xavier@broadcom.com (mailing list archive) |
---|---|
Headers | show |
Series | RDMA/bnxt_re: Doorbell Drop Prevention | expand |
On Sun, Jul 16, 2023 at 10:53:07PM -0700, Selvin Xavier wrote: > 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 Jason, any comments? Thanks > > 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(-) > > -- > 2.5.5 >