Skip to content

smbdirect client/server credit fixes

Stefan Metzmacher linux-cifs stable 2 versions – New

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest20 patches 0 repliesNew
  2. v119 patches 7 repliesSuperseded

Changes in v2 from the cover letter

- we should not add new_credits twice to sc->recv_io.credits.count in the client patches
- also the need to use request->wr instead of a struct ib_send_wr on the stack for the client side negotiate request.

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/20smb: smbdirect: introduce smbdirect_socket.recv_io.credits.availablefs/smb/common/smbdirect/smbdirect_socket.h+2 -00 replies
2/20smb: smbdirect: introduce smbdirect_socket.send_io.bcredits.*fs/smb/common/smbdirect/smbdirect_socket.h+16 -00 replies
3/20smb: server: make use of smbdirect_socket.recv_io.credits.availablefs/smb/server/transport_rdma.c+25 -50 replies
4/20smb: server: let recv_done() queue a refill when the peer is low on creditsfs/smb/server/transport_rdma.c+4 -20 replies
5/20smb: server: make use of smbdirect_socket.send_io.bcreditsfs/smb/server/transport_rdma.c+51 -20 replies
6/20smb: server: fix last send credit problem causing disconnectsfs/smb/server/transport_rdma.c+30 -20 replies
7/20smb: server: let send_done handle a completion without IB_SEND_SIGNALEDfs/smb/server/transport_rdma.c+26 -00 replies
8/20smb: client: make use of smbdirect_socket.recv_io.credits.availablefs/smb/client/smbdirect.c+28 -60 replies
9/20smb: client: let recv_done() queue a refill when the peer is low on creditsfs/smb/client/smbdirect.c+5 -20 replies
10/20smb: client: let smbd_post_send() make use of request->wrfs/smb/client/smbdirect.c+7 -80 replies
11/20smb: client: remove pointless sc->recv_io.credits.count rollbackfs/smb/client/smbdirect.c+0 -30 replies
12/20smb: client: remove pointless sc->send_io.pending handling in smbd_post_send_iter()fs/smb/client/smbdirect.c+0 -50 replies
13/20smb: client: port and use the wait_for_credits logic used by serverfs/smb/client/smbdirect.c+43 -270 replies
14/20smb: client: split out smbd_ib_post_send()fs/smb/client/smbdirect.c+17 -160 replies
15/20smb: client: introduce and use smbd_{alloc,free}_send_io()fs/smb/client/smbdirect.c+58 -290 replies
16/20smb: client: use smbdirect_send_batch processingfs/smb/client/smbdirect.c+135 -140 replies
17/20smb: client: make use of smbdirect_socket.send_io.bcreditsfs/smb/client/smbdirect.c+55 -30 replies
18/20smb: client: fix last send credit problem causing disconnectsfs/smb/client/smbdirect.c+29 -20 replies
19/20smb: client: let smbd_post_send_negotiate_req() use smbd_post_send()fs/smb/client/smbdirect.c+7 -250 replies
20/20smb: client: let send_done handle a completion without IB_SEND_SIGNALEDfs/smb/client/smbdirect.c+27 -00 replies

Reviews trailers per patch

7 of 20 patches have a Reviewed-by or Acked-by.

PatchNamjae Jeon
1/20A-b
2/20A-b
3/20A-b
4/20A-b
5/20A-b
6/20A-b
7/20A-b
8/20
9/20
10/20
11/20
12/20
13/20
14/20
15/20
16/20
17/20
18/20
19/20
20/20

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v2 thread

Cover letter [PATCH v2 00/20] smbdirect client/server credit fixes

Hi,

here is my current state of the regression fixes we have in 6.18 and 6.19-rc6.

We may add some more detailed Fixes tags, but for now at least everything is marked as stable for 6.18.

I tested the patches and fixed a few minor but important things in the client patches.

v2:
- we should not add new_credits twice to sc->recv_io.credits.count in the client patches
- also the need to use request->wr instead of a struct ib_send_wr on the stack for the client side negotiate request.

Stefan Metzmacher (20):
smb: smbdirect: introduce smbdirect_socket.recv_io.credits.available
smb: smbdirect: introduce smbdirect_socket.send_io.bcredits.*
smb: server: make use of smbdirect_socket.recv_io.credits.available
smb: server: let recv_done() queue a refill when the peer is low on
credits
smb: server: make use of smbdirect_socket.send_io.bcredits
smb: server: fix last send credit problem causing disconnects
smb: server: let send_done handle a completion without
IB_SEND_SIGNALED
smb: client: make use of smbdirect_socket.recv_io.credits.available
smb: client: let recv_done() queue a refill when the peer is low on
credits
smb: client: let smbd_post_send() make use of request->wr
smb: client: remove pointless sc->recv_io.credits.count rollback
smb: client: remove pointless sc->send_io.pending handling in
smbd_post_send_iter()
smb: client: port and use the wait_for_credits logic used by server
smb: client: split out smbd_ib_post_send()
smb: client: introduce and use smbd_{alloc,free}_send_io()
smb: client: use smbdirect_send_batch processing
smb: client: make use of smbdirect_socket.send_io.bcredits
smb: client: fix last send credit problem causing disconnects
smb: client: let smbd_post_send_negotiate_req() use smbd_post_send()
smb: client: let send_done handle a completion without
IB_SEND_SIGNALED

 fs/smb/client/smbdirect.c                  | 523 ++++++++++++++++-----
 fs/smb/common/smbdirect/smbdirect_socket.h |  18 +
 fs/smb/server/transport_rdma.c             | 147 +++++-
 3 files changed, 551 insertions(+), 137 deletions(-)
Signature · 1 line
2.43.0