From: Stefan Metzmacher <metze@samba.org>
To: Namjae Jeon <linkinjeon@kernel.org>
Cc: Tom Talpey <tom@talpey.com>,
"linux-cifs@vger.kernel.org" <linux-cifs@vger.kernel.org>,
"linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>
Subject: Re: Problem with smbdirect rw credits and initiator_depth
Date: Thu, 15 Jan 2026 10:50:15 +0100 [thread overview]
Message-ID: <b58fa352-2386-4145-b42e-9b4b1d484e17@samba.org> (raw)
In-Reply-To: <CAKYAXd-42_fSHBL7iZbuOtYFKqKyhPS-4C+nqbX=-Djq5L6Okg@mail.gmail.com>
Am 15.01.26 um 03:01 schrieb Namjae Jeon:
> On Thu, Jan 15, 2026 at 3:13 AM Stefan Metzmacher <metze@samba.org> wrote:
>>
>> Am 15.12.25 um 21:17 schrieb Stefan Metzmacher:
>>> Am 14.12.25 um 23:56 schrieb Stefan Metzmacher:
>>>> Am 13.12.25 um 03:14 schrieb Namjae Jeon:
>>>>>> I've put these changes a long with rw credit fixes into my
>>>>>> for-6.18/ksmbd-smbdirect-regression-v4 branch, are you able to
>>>>>> test this?
>>>>> Problems still occur. See:
>>>>
>>>> :-( Would you be able to use rxe and cake a network capture?
>>>>
>>>> Using test files with all zeros, e.g.
>>>> dd if=/dev/zero of=/tmp/4096MBzeros-sparse.dat seek=4096MB bs=1 count=1
>>>> would allow gzip --best on the capture file to compress well...
>>>
>>> I think I found something that explains it and
>>> I was able to reproduce and what I have in mind.
>>>
>>> We increment recv_io.posted.count after ib_post_recv()
>>>
>>> And manage_credits_prior_sending() uses
>>>
>>> new_credits = recv_io.posted.count - recv_io.credits.count
>>>
>>> But there is a race between the hardware receiving a message
>>> and recv_done being called in order to decrement recv_io.posted.count
>>> again. During that race manage_credits_prior_sending() might grant
>>> too much credits.
>>>
>>> Please test my for-6.18/ksmbd-smbdirect-regression-v5 branch,
>>> I haven't tested this branch yet, I'm running out of time
>>> for the day.
>>>
>>> But I tested it with smbclient and having a similar
>>> logic in fs/smb/common/smbdirect/smbdirect_connection.c
>>
>> I was able to reproduce the problem and the fix I created
>> for-6.18/ksmbd-smbdirect-regression-v5 was not correct.
>>
>> I needed to use
>>
>> available = atomic_xchg(&sc->recv_io.credits.available, 0);
>>
>> instead of
>>
>> available = atomic_read(&sc->recv_io.credits.available);
>> atomic_sub(new_credits, &sc->recv_io.credits.available);
>>
>> This following branch works for me:
>> for-6.18/ksmbd-smbdirect-regression-v7
>> and with the fixes again master this should also work:
>> for-6.19/ksmbd-smbdirect-regression-v1
>>
>> I'll post real patches tomorrow.
>>
>> Please check.
> Okay, I will test it with two branches.
> I'll try it too, but I recommend running frametest for performance
> difference and stress testing.
>
> https://support.dvsus.com/hc/en-us/articles/212925466-How-to-use-frametest
>
> ex) frametest.exe -w 4k -t 20 -n 2000
That works fine, but
frametest.exe -r 4k -t 20 -n 2000
generates a continues stream of such messages:
ksmbd: Failed to send message: -107
Both with 6.17.2 and for-6.19/ksmbd-smbdirect-regression-v1,
so this is not a regression.
I'll now check if the is related to the other problems
I found and fixes in for-6.18/ksmbd-smbdirect-regression-v5
metze
next prev parent reply other threads:[~2026-01-15 9:50 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-03 18:18 Problem with smbdirect rw credits and initiator_depth Stefan Metzmacher
2025-12-04 0:07 ` Namjae Jeon
2025-12-04 9:39 ` Stefan Metzmacher
2025-12-05 2:33 ` Namjae Jeon
2025-12-05 12:21 ` Namjae Jeon
2025-12-08 16:13 ` Stefan Metzmacher
2025-12-10 16:42 ` Stefan Metzmacher
2025-12-11 19:38 ` Stefan Metzmacher
2025-12-12 9:58 ` Stefan Metzmacher
2025-12-12 15:35 ` Stefan Metzmacher
2025-12-13 2:14 ` Namjae Jeon
2025-12-14 22:56 ` Stefan Metzmacher
2025-12-15 20:17 ` Stefan Metzmacher
2025-12-16 23:59 ` Namjae Jeon
2026-01-14 18:13 ` Stefan Metzmacher
2026-01-15 2:01 ` Namjae Jeon
2026-01-15 9:50 ` Stefan Metzmacher [this message]
2026-01-16 23:08 ` Stefan Metzmacher
2026-01-17 13:15 ` Stefan Metzmacher
2026-01-18 8:03 ` Namjae Jeon
2026-01-19 17:28 ` Stefan Metzmacher
2026-01-19 19:17 ` Stefan Metzmacher
2025-12-08 16:02 ` Stefan Metzmacher
2025-12-04 9:57 ` Stefan Metzmacher
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b58fa352-2386-4145-b42e-9b4b1d484e17@samba.org \
--to=metze@samba.org \
--cc=linkinjeon@kernel.org \
--cc=linux-cifs@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=tom@talpey.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox