Linux RDMA and InfiniBand development
 help / color / mirror / Atom feed
* [PATCH rdma-next 0/4] RDMA/irdma: Fix SRQ completion handling
@ 2026-11-06 22:11 Jacob Moroni
  2026-11-06 22:11 ` [PATCH rdma-next 1/4] RDMA/irdma: Fix QP handle assignment for SRQ completions Jacob Moroni
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Jacob Moroni @ 2026-11-06 22:11 UTC (permalink / raw)
  To: tatyana.e.nikolova, jgg, leon; +Cc: linux-rdma, Jacob Moroni

SRQ support was introduced along with GEN3 HW support, but the kernel
implementation contained several bugs which rendered it unusable for
kernel consumers.

- The QP handle was being loaded from the incorrect offset, which
  would cause a crash/hang upon receiving the first receive completion
  for an SRQ-associated QP.
- Similar to above, the CQ scrubbing logic was scrubbing the wrong
  CQE offset, which would leave stale CQEs in the CQ for a QP that
  has been destroyed.
- When SRQ CQEs were scrubbed, the SRQ slots weren't being released.
- A NULL dereference could occur during CQ poll if scrubbed CQEs
  happen to be in the ring at the time of polling, due to the NULL
  check being located after the pointer was dereferenced.

SRQ functionality was verified using nvmet-rdma with use_srq=1 with
sequential+parallel I/O, disconnects under load, etc.

Jacob Moroni (4):
  RDMA/irdma: Fix QP handle assignment for SRQ completions
  RDMA/irdma: Check QP handle before decoding CQE errors
  RDMA/irdma: Fix CQ scrub for SRQ associated QPs
  RDMA/irdma: Release SRQ slots during CQ scrub

 drivers/infiniband/hw/irdma/uk.c   | 64 ++++++++++++++++++++----------
 drivers/infiniband/hw/irdma/user.h |  2 +-
 2 files changed, 44 insertions(+), 22 deletions(-)


base-commit: e50525a486300e5ff8014c9985b8477b2fca0368
-- 
2.56.0.455.g6c5a503b38-goog


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2026-11-11 17:35 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-06 22:11 [PATCH rdma-next 0/4] RDMA/irdma: Fix SRQ completion handling Jacob Moroni
2026-11-06 22:11 ` [PATCH rdma-next 1/4] RDMA/irdma: Fix QP handle assignment for SRQ completions Jacob Moroni
2026-11-06 22:21   ` sashiko-bot
2026-11-10 21:24   ` David Hu
2026-11-10 23:08     ` Jacob Moroni
2026-11-11 17:35       ` David Hu
2026-11-06 22:11 ` [PATCH rdma-next 2/4] RDMA/irdma: Check QP handle before decoding CQE errors Jacob Moroni
2026-11-06 22:22   ` sashiko-bot
2026-11-06 22:11 ` [PATCH rdma-next 3/4] RDMA/irdma: Fix CQ scrub for SRQ associated QPs Jacob Moroni
2026-11-06 22:35   ` sashiko-bot
2026-11-06 22:12 ` [PATCH rdma-next 4/4] RDMA/irdma: Release SRQ slots during CQ scrub Jacob Moroni
2026-11-06 22:30   ` sashiko-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox