APPLIED: [SRU][Q:linux-gcp][PULL] Add RDMA support for Intel IPU E2000
Ian Whitfield
ian.whitfield at canonical.com
Mon Dec 15 15:56:18 UTC 2025
On Mon, Dec 08, 2025 at 05:19:20PM -0500, Ian Whitfield wrote:
> 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
Applied to questing:linux-gcp master-next.
More information about the kernel-team
mailing list