[PATCH rdma-next v3 0/6] RDMA/irdma: Add support for ioctl
From: David Hu
Date: Fri Oct 16 2026 - 16:29:35 EST
From: David Hu <xuehaohu@xxxxxxxxxx>
Hello,
This patch series introduces support for uverbs ioctl queue creation
(QP, CQ, and SRQ) in the irdma driver. This series makes progress towards
modernizing irdma. This enables 1-step queue creation from pinned UMEMs
and shared dma-buf heaps (system_cc_shared), providing RDMA support for
Confidential Computing (CoCo) guest environments where memory encryption
otherwise prevents standard host-VA-based queues from operating.
Historically, irdma relied on legacy write() commands for queue setup.
This series modernizes irdma's queue creation path by adopting the ioctl
infrastructure:
1. Plumbs uverbs_attr_bundle into the irdma QP and SRQ creation routines.
2. Registers irdma's UVERBS ioctl namespace definition for QP, CQ, and SRQ.
3. Implements 1-step queue buffer creation for QP, CQ, and SRQ using
UVERBS_ATTR_CREATE_*_BUF_UMEM attributes and ib_umem_get_attr(),
configuring hardware Page Buffer Lists (PBLs) directly from pinned umems.
4. Split CQ creation setup logic by umode and kmode into separate
routines to be consistent with other queue creation logic.
5. Adds support for driver-specific shadow area UMEM attributes during CQ
creation with CQ resize capability.
6. Preserves backward compatibility with legacy 2-step write() path
registrations when UMEM attributes are not provided.
User space rdma-core PR: https://github.com/linux-rdma/rdma-core/pull/1766
Testing:
Verified with rc_pingpong, srq_pingpong, and dmabuf_pingpong over irdma
devices in Confidential VM environments.
Changes in v3:
- Improve patch 4/6 to split umode cq creation to a new callback
.create_user_cq() (irdma_create_user_cq) (Leon)
- Clean up duplicate bounds and NULL checks in cq creation path (Leon)
- Link to v2: https://lore.kernel.org/all/20261015011940.4122452-1-dhu@xxxxxx/
Changes in v2:
- Add patch 4/6 to split out setup logic from irdma_create_cq() into
umode and kmode helpers (Leon).
- Rewrap commit messages to ~75 characters (Leon).
- Fix a pble/umem resource leak in irdma_resize_cq() (Sashiko).
- Link to v1: https://lore.kernel.org/all/20261011011022.1445352-1-dhu@xxxxxx/
David Hu (6):
RDMA/irdma: Plumb uverbs_attr_bundle for QP, SRQ
RDMA/irdma: Register irdma UVERBS ioctl namespace
RDMA/irdma: Support UMEM attribute for QP creation
RDMA/irdma: Split CQ setup to umode and kmode
RDMA/irdma: Support UMEM attribute for CQ creation
RDMA/irdma: Support UMEM attribute for SRQ creation
drivers/infiniband/hw/irdma/utils.c | 12 +-
drivers/infiniband/hw/irdma/verbs.c | 756 ++++++++++++++++++++--------
include/uapi/rdma/irdma-abi.h | 5 +
3 files changed, 568 insertions(+), 205 deletions(-)
base-commit: 978361dd2ccff357d4fe6aac6ce057d1bfae8312
--
2.56.0.176.g3575e65682-goog