This is v10 of Long Li's four-patch HWC series, rebased for the reopened
net-next tree. I am carrying the series forward with review fixes and
integration work. Original authorship and sign-offs are retained.
The series supports concurrent requests over the MANA hardware channel and
rebuilds its queues using the queue depth and message sizes required by
the PF. It prepares ownership and teardown, gives each message its own
completion, adds concurrent request tracking, and enables dynamic sizing.
v9 was deferred while net-next was closed. This revision resolves its
conflicts with the upstream throttled-EQE support; it is not an unchanged
RESEND. No new actionable v9 review finding was located during the
reposting check.
Changes since v9:
- Rebase onto current net-next, including the throttled-EQE support from
684603842b78 ("net: mana: Add support to process throttled EQEs").
- In patch 1, use one acquire-loaded CQ-table snapshot in the new throttle
reader, matching the existing normal-EQE reader and HWC table-withdrawal
lifetime contract.
- In patch 1, fence the HWC EQ before destroying its CQ, but keep the EQ
allocation alive until the CQ has detached its upstream child entry.
Preserve the upstream generic CQ detach/RCU implementation and allowance
for empty HWC CQ polls.
- Refresh patch 4's context while preserving the upstream doorbell
client_offset argument and address adjustment.
- Patches 2 and 3 retain their v9 changes. PF-directed queue geometry,
healthy-admission waiting and timeout/cancellation policy are unchanged.
Validation on this exact revision:
- GCC and Clang W=1 MANA Ethernet/RDMA target builds for the unmodified
base and each of the four intermediate commits.
- Strict netdev checkpatch with an 80-column limit and whitespace checks.
- Bounded actual-source userspace regression tests for request ownership,
admission, retention, teardown, initialization, rebuild and TX budgets.
- New GCC/Clang ASan/UBSan tests of the throttle reader and CQ/EQ cleanup
on patches 1 and 4, including partial setup, prior fencing, table
withdrawal and negative controls for the integration changes.
- Source review of ownership, IRQ/RCU readers and failure paths.
These are static/offline checks. No new full-kernel, hardware, runtime
or performance qualification is claimed for this rebase.
Previous revision:
https://lore.kernel.org/all/cover.1792679388.git.weh@linux.microsoft.com/ (local)
Deferral while net-next was closed:
https://lore.kernel.org/all/20261022082333.5a259426@kernel.org/ (local)
Base: fa5196392691051963726787944db872420dfa75
Long Li (4):
net: mana: prepare HWC ownership for safe reinitialization
net: mana: give each HWC message slot its own completion state
net: mana: support concurrent HWC requests
net: mana: add dynamic HWC queue depth with reinit path
drivers/infiniband/hw/mana/main.c | 19 +-
.../net/ethernet/microsoft/mana/gdma_cdx.c | 5 +-
.../net/ethernet/microsoft/mana/gdma_main.c | 162 ++-
.../net/ethernet/microsoft/mana/gdma_pci.c | 15 +-
.../net/ethernet/microsoft/mana/hw_channel.c | 1022 ++++++++++++++---
.../net/ethernet/microsoft/mana/shm_channel.c | 58 +-
include/net/mana/gdma.h | 17 +
include/net/mana/hw_channel.h | 70 +-
include/net/mana/shm_channel.h | 10 +-
9 files changed, 1157 insertions(+), 221 deletions(-)
base-commit: fa5196392691051963726787944db872420dfa75
--
2.43.0