[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