|
|
Log in / Subscribe / Register

net/smc: transition to RDMA core CQ pooling

From:  "D. Wythe" <alibuda-AT-linux.alibaba.com>
To:  "David S. Miller" <davem-AT-davemloft.net>, Dust Li <dust.li-AT-linux.alibaba.com>, Eric Dumazet <edumazet-AT-google.com>, Jakub Kicinski <kuba-AT-kernel.org>, Paolo Abeni <pabeni-AT-redhat.com>, Sidraya Jayagond <sidraya-AT-linux.ibm.com>, Wenjia Zhang <wenjia-AT-linux.ibm.com>
Subject:  [PATCH net-next 0/2] net/smc: transition to RDMA core CQ pooling
Date:  Thu, 28 May 2026 16:48:17 +0800
Message-ID:  <20260528084819.6059-1-alibuda@linux.alibaba.com>
Cc:  Mahanta Jambigi <mjambigi-AT-linux.ibm.com>, Simon Horman <horms-AT-kernel.org>, Tony Lu <tonylu-AT-linux.alibaba.com>, Wen Gu <guwen-AT-linux.alibaba.com>, linux-kernel-AT-vger.kernel.org, linux-rdma-AT-vger.kernel.org, linux-s390-AT-vger.kernel.org, netdev-AT-vger.kernel.org, oliver.yang-AT-linux.alibaba.com, pasic-AT-linux.ibm.com
Archive-link:  Article

This series transitions SMC-R completion handling to RDMA core CQ pooling
via the ib_cqe API. The new completion model improves scalability by
allowing per-link completion processing across multiple cores and enables
DIM-based interrupt moderation.

As a side effect, the increased concurrency can amplify contention for TX
slots on the shared wait queue. Patch 2 addresses this by switching TX slot
allocation from non-exclusive wait_event() to prepare_to_wait_exclusive(),
which avoids thundering-herd wakeups under contention.

Patch 1 replaces the global per-device CQ and manual tasklet polling model
with RDMA core CQ pooling.
Patch 2 reduces TX slot contention by using exclusive wait queue entries
during allocation.

Link: https://lore.kernel.org/netdev/20260305022323.96125-1-ali...

---
Changes v1 -> v2:
https://lore.kernel.org/netdev/20260508063718.101622-1-al...
1. remove unnecessary inline from static CQE init helpers.
2. Use ib_drain_qp() with +1 max_send_wr; 
3. Fix v2 state clearing.
4. Add re-check after schedule_timeout() to fix timeout/signal races.

D. Wythe (2):
  net/smc: transition to RDMA core CQ pooling
  net/smc: reduce TX slot contention with exclusive wait

 net/smc/smc_core.c |   9 +-
 net/smc/smc_core.h |  28 ++--
 net/smc/smc_ib.c   | 113 +++++----------
 net/smc/smc_ib.h   |   7 -
 net/smc/smc_tx.c   |   1 -
 net/smc/smc_wr.c   | 344 ++++++++++++++++++++-------------------------
 net/smc/smc_wr.h   |  40 ++----
 7 files changed, 215 insertions(+), 327 deletions(-)

-- 
2.45.0




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds