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