mbox series

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

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

Message

Selvin Xavier July 17, 2023, 5:53 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,
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(-)

Comments

Leon Romanovsky July 18, 2023, 9:40 a.m. UTC | #1
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
>