Skip to content

Conversation

tatyana-en
Copy link
Contributor

[PATCH 0/9] Add RDMA support for Intel IPU E2000 (GEN 3)

This patch series introduces the user space RDMA RoCEv2 support
for the Intel Infrastructure Processing Unit (IPU) E2000 line of
products, referred to as GEN 3 in the irdma provider.

The patch series for the kernel GEN 3 irdma driver is at
https://lore.kernel.org/all/20250827152545.2056-1-tatyana.e.nikolova@intel.com/

Key highlights of this series as it pertains to GEN 3 device include:

  • Enable 64-byte Completion Queue Entry (CQE) support
  • CQE Error and Flush Handling Changes
  • Atomic Operations Support
  • Shared Receive Queue Support
  • Type2 Memory Windows and CQE Timestamp Capability

The patches have been tested on a range of hosts and platforms with a variety
of general RDMA applications which include standalone verbs (rping, perftest, etc.),
storage and HPC applications.

Changelog:

Differences from the prior RFC PR at #1486
for this series include:

  • Remove Push Mode Support for GEN 3
  • Add checks to enable SRQ and Atomic Operations if they are supported

mustafakismail and others added 9 commits August 29, 2025 00:10
Enable 64-byte CQE support if the feature flag IRDMA_FEATURE_64_BYTE_CQE is
set. Adjust the CQ size calculations in create_cq() and resize_cq() and use
get_cq_size() in resize CQ instead of calculating again. Make CQ size an
even number, which is a GEN 3 HW requirement.

Signed-off-by: Mustafa Ismail <mustafa.ismail@intel.com>
Signed-off-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
Modify cq_poll_compl() to poll flushed CQEs for GEN 3

Add IBV_WC_RETRY_EXC_ERR and FLUSH_RNR_RETRY_EXC_ERR to the returned
ibv_wc_status errors

Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
Signed-off-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
Add set_ib_wc_op_rq_gen_3() to set the ibv_wc opcodes for GEN 3 RQ
completions

Signed-off-by: Mustafa Ismail <mustafa.ismail@intel.com>
Signed-off-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
Set WQE_FORMAT_V2 flag in ucontext allocation request. This prevents
driver from binding GEN3 devices to older user-space providers

Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
Signed-off-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
Add atomic operations support for GEN 3 devices, namely Compare and Swap
and Fetch and Add.

Add FEATURE_ATOMIC_OPS check to allow atomic ops only when supported.

Signed-off-by: Faisal Latif <faisal.latif@intel.com>
Signed-off-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
Implement verb API and UAPI changes to support SRQ functionality in GEN 3
devices. Add SRQ feature check and register the SRQ device ops only if SRQ
is supported.

Provide function ae_to_qp_err_code() to translate AE codes into QP errors.
The function can be leveraged for flushed CQEs and error CQEs associated
with an SRQ.

Signed-off-by: Faisal Latif <faisal.latif@intel.com>
Signed-off-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
Remove deprecated timestamp functionality for GEN 2.

Enable FEATURE_CQE_TIMESTAMPING for GEN 3 devices. The Host Channel
Adapter (HCA) core clock frequency in the timestamp info is retrieved
from the CQE.

Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
Signed-off-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
Enable Type2 MW for GEN3 devices.

Type2 MW is disabled for GEN2/1 devices via the capability flag in
query_device.

Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
Signed-off-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
Update kernel headers to patch
("[for-next 12/16] RDMA/irdma: Add SRQ support") at
https://lore.kernel.org/all/20250827152545.2056-13-tatyana.e.nikolova@intel.com/

Signed-off-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants