[SRU][Q:linux-gcp][PULL] Add RDMA support for Intel IPU E2000
Ian Whitfield
ian.whitfield at canonical.com
Mon Dec 8 22:19:20 UTC 2025
BugLink: https://bugs.launchpad.net/bugs/2131258
SRU Justification
[Impact]
Google has requested a backport of Intel driver patches to enable upcoming
hardware. noble:linux-gcp was deemed too high cost to target for these patches,
so they'll only be backported to questing:linux-gcp. This cover letter only
discusses the backport to 6.17, the links at the end document discussion of the
larger patchset and 6.8 porting effort.
[Fix]
Of the patches required to enable RDMA for the Intel IPU E2000,
questing:linux-gcp was only missing the following patches (oldest first):
0c2b80cac96e ("RDMA/irdma: Refactor GEN2 auxiliary driver")
d5edd33364a5 ("RDMA/irdma: Add GEN3 core driver support")
7d5a7cc7b998 ("RDMA/irdma: Discover and set up GEN3 hardware register layout")
c7db0abe5f2b ("RDMA/irdma: Add GEN3 CQP support with deferred completions")
b800e82feba7 ("RDMA/irdma: Add GEN3 support for AEQ and CEQ")
da278cb29c41 ("RDMA/irdma: Add GEN3 HW statistics support")
2ad49ae7330b ("RDMA/irdma: Introduce GEN3 vPort driver support")
d6ed4b69b8ea ("RDMA/irdma: Add GEN3 virtual QP1 support")
87f413b6c930 ("RDMA/irdma: Extend QP context programming for GEN3")
419afdd122ea ("RDMA/irdma: Add support for V2 HMC resource management scheme")
9a1d68786393 ("RDMA/irdma: Support 64-byte CQEs and GEN3 CQE opcode decoding")
563e1feb5f6e ("RDMA/irdma: Add SRQ support")
eb31dfc2b41a ("RDMA/irdma: Restrict Memory Window and CQE Timestamping to GEN3")
a24a29c8747f ("RDMA/irdma: Add Atomic Operations support")
42f1d099093b ("RDMA/irdma: Extend CQE Error and Flush Handling for GEN3 Devices")
060842fed53f ("RDMA/irdma: Update Kconfig")
4bab6d958449 ("RDMA/irdma: Fix positive vs negative error codes in irdma_post_send()")
880245fd029a ("RDMA/irdma: Remove unused struct irdma_cq fields")
8d158f47f1f3 ("RDMA/irdma: Fix SD index calculation")
5575b7646b94 ("RDMA/irdma: Set irdma_cq cq_num field during CQ create")
320258783765 ("RDMA/irdma: Fix vf_id size to u16 to avoid overflow")
All of the above patches applied cleanly from mainline.
[Test Plan]
Compile and boot tested on an IDPF machine, although these changes will likely
only get ran through their paces in the new year when we get more hardware
access.
[Regression potential]
The changes requested are isolated to the Intel networking drivers, so
regressions should only be possible when using an Intel NIC, especially with
RDMA enabled. Problems would most likely manifest as unexpected network behavior
or kernel crashes/hangs during specific network activities. This patchset is
new enough to maybe be missing some early bug fixes that crop up in the coming
months, so some care should be taken to watch these drivers for problems.
[Other]
SF: 00384743
https://canonical.lightning.force.com/lightning/r/Case/500N100000BMw3pIAD/view
KERN-14296
https://warthogs.atlassian.net/browse/KERN-14296
----------------------------------------------------------------
The following changes since commit 45b765e7d27a167b32f3fd84e51851c17b3a2b5c:
UBUNTU: Ubuntu-gcp-6.17.0-1005.5 (2025-11-21 19:31:54 -0800)
are available in the Git repository at:
git+ssh://ijwhitfield@git.launchpad.net/~ijwhitfield/ubuntu/+source/linux-gcp/+git/questing irdma
for you to fetch changes up to dc94baca3a7acbad6a29ccbb71502e3480dd8333:
RDMA/irdma: Fix vf_id size to u16 to avoid overflow (2025-12-04 18:28:32 -0500)
----------------------------------------------------------------
Christopher Bednarz (1):
RDMA/irdma: Discover and set up GEN3 hardware register layout
Dan Carpenter (1):
RDMA/irdma: Fix positive vs negative error codes in irdma_post_send()
Faisal Latif (2):
RDMA/irdma: Add SRQ support
RDMA/irdma: Add Atomic Operations support
Jacob Moroni (3):
RDMA/irdma: Remove unused struct irdma_cq fields
RDMA/irdma: Fix SD index calculation
RDMA/irdma: Set irdma_cq cq_num field during CQ create
Jay Bhat (1):
RDMA/irdma: Fix vf_id size to u16 to avoid overflow
Krzysztof Czurylo (2):
RDMA/irdma: Add GEN3 CQP support with deferred completions
RDMA/irdma: Add GEN3 HW statistics support
Mustafa Ismail (3):
RDMA/irdma: Refactor GEN2 auxiliary driver
RDMA/irdma: Add GEN3 core driver support
RDMA/irdma: Introduce GEN3 vPort driver support
Shiraz Saleem (6):
RDMA/irdma: Add GEN3 support for AEQ and CEQ
RDMA/irdma: Add GEN3 virtual QP1 support
RDMA/irdma: Extend QP context programming for GEN3
RDMA/irdma: Support 64-byte CQEs and GEN3 CQE opcode decoding
RDMA/irdma: Restrict Memory Window and CQE Timestamping to GEN3
RDMA/irdma: Extend CQE Error and Flush Handling for GEN3 Devices
Tatyana Nikolova (1):
RDMA/irdma: Update Kconfig
Vinoth Kumar Chandra Mohan (1):
RDMA/irdma: Add support for V2 HMC resource management scheme
drivers/infiniband/hw/irdma/Kconfig | 7 +-
drivers/infiniband/hw/irdma/Makefile | 4 +
drivers/infiniband/hw/irdma/ctrl.c | 1468 +++++++++++++++++++++++++++---
drivers/infiniband/hw/irdma/defs.h | 264 +++---
drivers/infiniband/hw/irdma/hmc.c | 18 +-
drivers/infiniband/hw/irdma/hmc.h | 19 +-
drivers/infiniband/hw/irdma/hw.c | 363 +++++---
drivers/infiniband/hw/irdma/i40iw_hw.c | 2 +
drivers/infiniband/hw/irdma/i40iw_hw.h | 2 +
drivers/infiniband/hw/irdma/i40iw_if.c | 3 +
drivers/infiniband/hw/irdma/icrdma_hw.c | 3 +
drivers/infiniband/hw/irdma/icrdma_hw.h | 5 +-
drivers/infiniband/hw/irdma/icrdma_if.c | 343 +++++++
drivers/infiniband/hw/irdma/ig3rdma_hw.c | 170 ++++
drivers/infiniband/hw/irdma/ig3rdma_hw.h | 32 +
drivers/infiniband/hw/irdma/ig3rdma_if.c | 232 +++++
drivers/infiniband/hw/irdma/irdma.h | 22 +-
drivers/infiniband/hw/irdma/main.c | 371 ++------
drivers/infiniband/hw/irdma/main.h | 35 +-
drivers/infiniband/hw/irdma/pble.c | 22 +-
drivers/infiniband/hw/irdma/protos.h | 1 +
drivers/infiniband/hw/irdma/puda.h | 4 +-
drivers/infiniband/hw/irdma/type.h | 223 ++++-
drivers/infiniband/hw/irdma/uda_d.h | 5 +-
drivers/infiniband/hw/irdma/uk.c | 303 +++++-
drivers/infiniband/hw/irdma/user.h | 267 +++++-
drivers/infiniband/hw/irdma/utils.c | 112 ++-
drivers/infiniband/hw/irdma/verbs.c | 829 ++++++++++++++---
drivers/infiniband/hw/irdma/verbs.h | 52 +-
drivers/infiniband/hw/irdma/virtchnl.c | 618 +++++++++++++
drivers/infiniband/hw/irdma/virtchnl.h | 176 ++++
include/uapi/rdma/irdma-abi.h | 16 +-
32 files changed, 5124 insertions(+), 867 deletions(-)
create mode 100644 drivers/infiniband/hw/irdma/icrdma_if.c
create mode 100644 drivers/infiniband/hw/irdma/ig3rdma_hw.c
create mode 100644 drivers/infiniband/hw/irdma/ig3rdma_hw.h
create mode 100644 drivers/infiniband/hw/irdma/ig3rdma_if.c
create mode 100644 drivers/infiniband/hw/irdma/virtchnl.c
create mode 100644 drivers/infiniband/hw/irdma/virtchnl.h
More information about the kernel-team
mailing list