[PATCH rdma-next 0/3] Add Flow Control for Solicited MADs

From: Leon Romanovsky
Date: Tue Dec 03 2024 - 10:38:50 EST


From: Leon Romanovsky <leonro@xxxxxxxxxx>

>From Or:

This patch series introduces flow control for solicited MADs in
the MAD layer, addressing the need avoid loss caused by insufficient
resources at the receiver.

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: Replace MAD's refcount with 'state' for readability
Patch #2: Remove unnecessary done list by utilizing MAD states
Patch #3: Add flow control for solicited MADs

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 (3):
IB/mad: Replace MAD's refcount with a state machine
IB/mad: Remove unnecessary done list by utilizing MAD states
IB/mad: Add flow control for solicited MADs

drivers/infiniband/core/mad.c | 212 +++++++++++++++++++++++++----
drivers/infiniband/core/mad_priv.h | 19 ++-
drivers/infiniband/core/mad_rmpp.c | 7 +-
3 files changed, 202 insertions(+), 36 deletions(-)

--
2.47.0