|
|
Log in / Subscribe / Register

RDMA/bnxt_re: Support direct verbs

From:  Sriharsha Basavapatna <sriharsha.basavapatna-AT-broadcom.com>
To:  leon-AT-kernel.org, jgg-AT-ziepe.ca
Subject:  [PATCH rdma-next v7 0/4] RDMA/bnxt_re: Support direct verbs
Date:  Tue, 13 Jan 2026 22:39:52 +0530
Message-ID:  <20260113170956.103779-1-sriharsha.basavapatna@broadcom.com>
Cc:  linux-rdma-AT-vger.kernel.org, andrew.gospodarek-AT-broadcom.com, selvin.xavier-AT-broadcom.com, kalesh-anakkur.purayil-AT-broadcom.com, Sriharsha Basavapatna <sriharsha.basavapatna-AT-broadcom.com>
Archive-link:  Article

Hi,

This patchset supports Direct Verbs in the bnxt_re driver.

This is required by vendor specific applications that need to manage
the HW resources directly and to implement the datapath in the
application.

To support this, the library and the driver are being enhanced to
provide Direct Verbs using which the application can allocate and
manage the HW resources (Queues, Doorbell etc) . The Direct Verbs
enable the application to implement the control path.

Patch#1 Move uapi methods to a separate file
Patch#2 Refactor existing bnxt_qplib_create_qp() function
Patch#3 Support dbr direct verbs
Patch#4 Support cq and qp direct verbs

Thanks,
-Harsha

******

Changes:

v7:
- Patch#3:
  - DBR_OFFSET attribute changed to PTR_OUT.
  - Added a reserved field in struct bnxt_re_dv_db_region.
  - Reordered sequence in DBR_ALLOC (hash_add -> uverbs_finalize).
  - Synchronized access to dpi hash table.
- Patch#4:
  - Changed dmabuf_fd type (u32->s32) in ABI.
  - Changed num_dma_blocks() arg from PAGE_SIZE to SZ_4K. 
  - Fixed atomic read/inc race window in bnxt_re_dv_create_qplib_cq().
  - Deleted bnxt_re_dv_init_ib_cq(). 
v6:
- Minor updates in Patch#3:
  - Removed unused variables.
  - Renamed & updated a uverbs method to a global.
- Minor updates in Patch#4:
  - Removed unused variables, stray hunks.
v5:
- Design changes to address previous round of comments:
  - Reverted changes in rdma-core (removed V4-Patch#1).
  - Removed driver support for umem-reg/dereg DVs (Patch#3).
  - Enhanced driver specific udata to avoid new CQ/QP ioctls (Patch#4).
  - Removed additional driver functions in modify/query QP (Patch#4).
  - Utilized queue-va in udata for deferred pinning (Patch#4).
v4:
- Added a new (rdma core) patch.
- Addressed code review comments in patch 5.
v3:
- Addressed code review comments in patches 1, 2 and 4.
v2:
- Fixed build warnings reported by test robot in patches 3 and 4.

v6: https://lore.kernel.org/linux-rdma/20251224042602.56255-1...
v5: https://lore.kernel.org/linux-rdma/20251129165441.75274-1...
v4: https://lore.kernel.org/linux-rdma/20251117061741.15752-1...
v3: https://lore.kernel.org/linux-rdma/20251110145628.290296-...
v2: https://lore.kernel.org/linux-rdma/20251104072320.210596-...
v1: https://lore.kernel.org/linux-rdma/20251103105033.205586-...

******

Kalesh AP (3):
  RDMA/bnxt_re: Move the UAPI methods to a dedicated file
  RDMA/bnxt_re: Refactor bnxt_qplib_create_qp() function
  RDMA/bnxt_re: Direct Verbs: Support DBR verbs

Sriharsha Basavapatna (1):
  RDMA/bnxt_re: Direct Verbs: Support CQ and QP verbs

 drivers/infiniband/hw/bnxt_re/Makefile    |   2 +-
 drivers/infiniband/hw/bnxt_re/bnxt_re.h   |   8 +
 drivers/infiniband/hw/bnxt_re/dv.c        | 934 ++++++++++++++++++++++
 drivers/infiniband/hw/bnxt_re/ib_verbs.c  | 552 +++++--------
 drivers/infiniband/hw/bnxt_re/ib_verbs.h  |  22 +
 drivers/infiniband/hw/bnxt_re/main.c      |   2 +
 drivers/infiniband/hw/bnxt_re/qplib_fp.c  | 310 +++----
 drivers/infiniband/hw/bnxt_re/qplib_fp.h  |  10 +-
 drivers/infiniband/hw/bnxt_re/qplib_res.c |  43 +
 drivers/infiniband/hw/bnxt_re/qplib_res.h |  10 +
 include/uapi/rdma/bnxt_re-abi.h           |  46 ++
 11 files changed, 1394 insertions(+), 545 deletions(-)
 create mode 100644 drivers/infiniband/hw/bnxt_re/dv.c

-- 
2.51.2.636.ga99f379adf




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds