[PATCH 0/5] smb: smbdirect: introduce local send credits

Stefan Metzmacher metze at samba.org
Mon Oct 20 18:35:57 UTC 2025


Hi,

our client already has some logic to prevent overflows of
the local submission queue for ib_post_send(), if the peer
granted more credits than we asked for.

But it's not as easy as it could be.

I guess that won't happen against Windows, but our git
history indicates this could happen.

Now we have a loop of local credits based on our send_credit_target.
With that we always try to get a local credit first and then
get a remote credit. When we got both we are able to
mark the request as pending in order to keep the
existing logic based on the pending count working.
Removing or changing that is a task for another day,
when all code if in common between client and server.

For the server this is a real bug fix, as such a logic was missing
before.

For the client it's not strictly required for 6.18, but
I think we should keep things consistent, as it will reduce
churn on my 6.19 patchset, which already has about 100 patches
and brings things into common code. And more is comming there...

Stefan Metzmacher (5):
  smb: smbdirect: introduce smbdirect_socket.send_io.lcredits.*
  smb: server: smb_direct_disconnect_rdma_connection() already wakes all
    waiters on error
  smb: server: simplify sibling_list handling in
    smb_direct_flush_send_list/send_done
  smb: server: make use of smbdirect_socket.send_io.lcredits.*
  smb: client: make use of smbdirect_socket.send_io.lcredits.*

 fs/smb/client/smbdirect.c                  |  67 ++++++++-----
 fs/smb/common/smbdirect/smbdirect_socket.h |  13 ++-
 fs/smb/server/transport_rdma.c             | 106 +++++++++++++++------
 3 files changed, 129 insertions(+), 57 deletions(-)

-- 
2.43.0




More information about the samba-technical mailing list