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(-) -- 2.5.5
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature