mbox series

[for-next,v3,0/7] RDMA/bnxt_re: Doorbell Drop Prevention

Message ID 1689742977-9128-1-git-send-email-selvin.xavier@broadcom.com (mailing list archive)
Headers show
Series RDMA/bnxt_re: Doorbell Drop Prevention | expand

Message

Selvin Xavier July 19, 2023, 5:02 a.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 user lib patch is in the pull request.
https://github.com/linux-rdma/rdma-core/pull/1360

Thanks,
Selvin Xavier

v2 -> v3:
     Fix the build warning
     Reported-by: kernel test robot <lkp@intel.com>

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      |  52 +++++-
 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, 380 insertions(+), 4 deletions(-)

Comments

Jason Gunthorpe July 21, 2023, 7:17 p.m. UTC | #1
On Tue, Jul 18, 2023 at 10:02:50PM -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,
> Selvin Xavier
> 
> v2 -> v3:
>      Fix the build warning
>      Reported-by: kernel test robot <lkp@intel.com>
> 
> 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

Applied to for-next, thanks

Jason