drivers/infiniband/core/cm.c | 47 ++- drivers/infiniband/core/mad.c | 468 ++++++++++++++++++++++------- drivers/infiniband/core/mad_priv.h | 76 ++++- drivers/infiniband/core/mad_rmpp.c | 41 +-- 4 files changed, 500 insertions(+), 132 deletions(-)
Changelog: v2: * Add separate send-only agent for REPs to prevent starvation of REPs when runnning both service and client on the same node. * Instead of immediately resending a timed-out MAD, it will now be * placed in backlog queue if the queue is not empty. v1: https://lore.kernel.org/all/cover.1736258116.git.leonro@nvidia.com * Add a cancel state to the state machine which allows removing the * status field in MAD's struct. * Add change_mad_state function which handles all the state transition. * Add WARN_ONs to check MAD states * Reorganize patches to have only two patches in this series instead of * three. v0: https://lore.kernel.org/all/cover.1733233636.git.leonro@nvidia.com -------------------------------------------------------------------------- From Or and Vlad This patch series introduces flow control for solicited MADs in the MAD layer, addressing the need to avoid loss caused by insufficient resources at the receiver side. Both the client and the server act as receivers - the latter receives requests, while the former receives responses. To facilitate this flow control, the series also refactors the MAD code, improving readability and enabling more straightforward implementation. Patch #1: Add state machine to MAD layer Patch #2: Add flow control for solicited MADs Patch #3: Use separate send-only agent for REPs The primary goal of this series is to add a flow control mechanism to the MAD layer, reducing the number of timeouts. The accompanying refactoring simplifies state management, making the code more maintainable and supporting the new flow control logic effectively. Thanks Or Har-Toov (2): IB/mad: Add state machine to MAD layer IB/mad: Add flow control for solicited MADs Vlad Dumitrescu (1): IB/cm: Use separate agent w/o flow control for REP drivers/infiniband/core/cm.c | 47 ++- drivers/infiniband/core/mad.c | 468 ++++++++++++++++++++++------- drivers/infiniband/core/mad_priv.h | 76 ++++- drivers/infiniband/core/mad_rmpp.c | 41 +-- 4 files changed, 500 insertions(+), 132 deletions(-) -- 2.50.0
On Mon, 30 Jun 2025 13:16:41 +0300, Leon Romanovsky wrote:
> Changelog:
> v2:
> * Add separate send-only agent for REPs to prevent starvation
> of REPs when runnning both service and client on the same node.
> * Instead of immediately resending a timed-out MAD, it will now be
> * placed in backlog queue if the queue is not empty.
> v1: https://lore.kernel.org/all/cover.1736258116.git.leonro@nvidia.com
> * Add a cancel state to the state machine which allows removing the
> * status field in MAD's struct.
> * Add change_mad_state function which handles all the state transition.
> * Add WARN_ONs to check MAD states
> * Reorganize patches to have only two patches in this series instead of
> * three.
> v0: https://lore.kernel.org/all/cover.1733233636.git.leonro@nvidia.com
>
> [...]
Applied, thanks!
[1/3] IB/mad: Add state machine to MAD layer
https://git.kernel.org/rdma/rdma/c/1cf0d8990155c1
[2/3] IB/mad: Add flow control for solicited MADs
https://git.kernel.org/rdma/rdma/c/314cb74cea847d
[3/3] IB/cm: Use separate agent w/o flow control for REP
https://git.kernel.org/rdma/rdma/c/8ab05a5456bb95
Best regards,
--
Leon Romanovsky <leon@kernel.org>
© 2016 - 2025 Red Hat, Inc.