From: Benjamin Coddington <ben.coddington@hammerspace.com>
To: Daire Byrne <daire@dneg.com>
Cc: Benjamin Coddington <ben.coddington@hammerspace.com>,
Chuck Lever <cel@kernel.org>, Jeff Layton <jlayton@kernel.org>,
NeilBrown <neil@brown.name>,
linux-nfs@vger.kernel.org
Subject: Re: [PATCH RFC 0/2] SUNRPC: dispatch ready transports round-robin across clients
Date: Mon, 05 Oct 2026 10:39:12 -0400 [thread overview]
Message-ID: <447769D8-07C4-48D7-82E3-5C373C3428DC@hammerspace.com> (raw)
In-Reply-To: <CAPt2mGPTskN+JoEBQftKvW=LZnRQLRcGm+1o2iO1RqPQpQC4rw@mail.gmail.com>
On 5 Oct 2026, at 8:18, Daire Byrne wrote:
> We use nconnect, set tcp_slot_table_entries=256 and use
> svc_rpc_per_connection_limit=4 in an attempt to allow for more
> requests in flight (NFSv3) and limit greedy clients.
Hey Daire - that limit is per connection, so a client's nconnect multiplies
it. I suspect what you really want is the limit per client. That isn't in
these patches, but with the svc_client added here there's an object to hang
it on.
> Now I understand that these patches don't affect the re-export
> server's connection to the upstream servers, but I am interested to
> see what effect they have on the re-export server's clients. If we can
> give a more equal share of requests to the clients does that in turn
> reduce the re-export server bottleneck? Do those greedy readers reduce
> their rops/s such that the re-export server doesn't flood the
> connection to the backend server with bulky read requests?
I don't think it will, or not by much. All this changes is which client
gets the next free nfsd thread. It never leaves a thread idle to hold a
client back, so if the readers are the only ones with requests queued they
still get every thread. And a READ that's waiting on the source server
keeps its thread the whole time. The readers only give something up when
another client has a request waiting for a thread.
So it depends where your GETATTRs and LOOKUPs are stuck. If they're
waiting for an nfsd thread on the re-export server, this should help. If
they already have a thread and are waiting in the NFS client behind the
READs going to the source server, it won't, and that sounds more like what
you're describing.
You can tell which if you can catch it happening. On the re-export server
the sunrpc:svc_xprt_dequeue tracepoint prints qtime-us, which is how long
the connection waited for a thread. And mountstats on the mount of the
source server splits GETATTR and LOOKUP into backlog wait and RTT. If
qtime is small while the clients are suffering then these patches aren't
going to help.
> I was going to test the patches but I got as far as they don't apply
> cleanly to v7.2 and then got caught up in other things.
Sorry, the posted ones are on Chuck's nfsd-testing. Here they are on v7.2:
https://github.com/bcodding/linux.git nfsd-clientq-7.2
It's three commits on top of v7.2: the svc_clean_up_xprts() wake fix and
the two from this RFC. That's the tree the numbers in the cover letter
came from.
Ben
prev parent reply other threads:[~2026-10-05 14:39 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-02 16:42 [PATCH RFC 0/2] SUNRPC: dispatch ready transports round-robin across clients Benjamin Coddington
2026-10-02 16:42 ` [PATCH RFC 1/2] SUNRPC: track service clients by peer address Benjamin Coddington
2026-10-02 16:42 ` [PATCH RFC 2/2] SUNRPC: dispatch ready transports round-robin across clients Benjamin Coddington
2026-10-04 20:48 ` [PATCH RFC 0/2] " Chuck Lever
2026-10-05 14:46 ` Benjamin Coddington
2026-10-05 17:21 ` Chuck Lever
2026-10-06 18:07 ` Benjamin Coddington
2026-10-07 14:15 ` Chuck Lever
2026-10-07 14:30 ` Benjamin Coddington
2026-10-05 12:18 ` Daire Byrne
2026-10-05 14:39 ` Benjamin Coddington [this message]
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=447769D8-07C4-48D7-82E3-5C373C3428DC@hammerspace.com \
--to=ben.coddington@hammerspace.com \
--cc=cel@kernel.org \
--cc=daire@dneg.com \
--cc=jlayton@kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=neil@brown.name \
/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