From: tmenninger@purestorage.com
To: Chuck Lever <cel@kernel.org>
Cc: Trond Myklebust <trondmy@kernel.org>,
Anna Schumaker <anna@kernel.org>, Tejun Heo <tj@kernel.org>,
Lai Jiangshan <jiangshanlai@gmail.com>,
linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org,
Eric Badger <ebadger@everpuredata.com>,
Jon Curley <jcurley@everpuredata.com>
Subject: Re: [PATCH RFC 6/8] SUNRPC: Reduce rpciod workqueue contention
Date: Mon, 14 Sep 2026 17:39:58 +0000 [thread overview]
Message-ID: <20260914173958.2045683-1-tmenninger@purestorage.com> (raw)
In-Reply-To: <611738b5-e115-4531-8d08-62607dc7f8ff@slotpi15m67>
> The lock profile did not move. free_slowpath fell by four orders
> of magnitude and __slab_free took list_lock just as often. So the
> list_lock contention is not the remote frees, and it never was!
Aha! Okay, thank you for all of your time and help with this.
If I am understanding correctly, the SLUB/barn/sheaf behavior we are
looking at here is pre-existing rather than introduced by this series.
The SMT affinity change is what changes the placement enough to expose
the remote-free cost on this workload.
> - Total and average wait for the list_lock address in the pinned
> run. The unpinned run showed 5.05 min and 90 us average; if the
> pinned run is similar, the lock absorbs the same time whichever
> way the frees go.
For the node0-pinned run, filtering the dominant lock gave:
2,907,948 3.37 min 69.62 us __slab_free
269,174 23.00 sec 85.46 us get_partial_node_bulk
175,965 15.17 sec 86.22 us __refill_objects_node
So in total that is about 3.353M contentions, 4.01 minutes of
aggregate wait, and roughly 71.8 us average wait.
Compared with the unpinned run:
unpinned node0 pinned
contentions 3.346M 3.353M
aggregate wait 5.05 min ~4.01 min
average wait 90.48 us ~71.8 us
So the contention count is essentially unchanged even though
free_slowpath drops from ~70M to ~9K. The pinned case does have
somewhat lower wait time per contention.
> - mpstat idle for node 0 in both runs, to tell whether that wait
> is idle time being spent or throughput being lost.
Averaging the node0 CPUs (0-23,48-71) in that sample gives about 66% idle.
In the earlier unpinned/all-local bad-state samples, those CPUs were nearly
saturated, generally around 0-2% idle.
> - Throughput for the node 0 / node 0 run that produced the counter
> table above. It is the one configuration missing from your
> throughput table.
Oh yeah, it was the same trend as the workload table below: unpinned was
43.4 GB/s and node 0 pinned was 46.5 GB/s.
At this point I think we have a reasonably clear separation between the
pre-existing allocator behavior and the regression introduced by the
SMT affinity change. I don't have any additional data I think would
materially change that conclusion, but I'm happy to run any targeted
follow-up you think would still be useful.
next prev parent reply other threads:[~2026-09-14 17:40 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-31 18:21 [PATCH RFC 0/8] Reduce lock contention in the NFS client Chuck Lever
2026-08-31 18:21 ` [PATCH RFC 1/8] SUNRPC: Use atomic_t for XID allocation Chuck Lever
2026-08-31 18:21 ` [PATCH RFC 2/8] SUNRPC: Execute initial async RPC states in caller's context Chuck Lever
2026-08-31 18:21 ` [PATCH RFC 3/8] SUNRPC: Split recv_lock out of xprt->queue_lock Chuck Lever
2026-08-31 18:22 ` [PATCH RFC 4/8] Set WQ_SYSFS on key NFS-related workqueues Chuck Lever
2026-08-31 18:22 ` [PATCH RFC 5/8] workqueue: Export the functions needed for WQ attribute modification Chuck Lever
2026-08-31 18:22 ` [PATCH RFC 6/8] SUNRPC: Reduce rpciod workqueue contention Chuck Lever
2026-09-02 20:40 ` Tim Menninger
2026-09-03 13:33 ` Chuck Lever
2026-09-03 23:50 ` Tim Menninger
2026-09-04 14:13 ` Chuck Lever
2026-09-04 23:23 ` Tim Menninger
2026-09-06 16:21 ` Chuck Lever
2026-09-08 18:19 ` tmenninger
2026-09-08 21:11 ` Chuck Lever
2026-09-08 23:39 ` tmenninger
2026-09-09 16:14 ` Chuck Lever
2026-09-12 14:59 ` tmenninger
2026-09-12 15:49 ` Chuck Lever
2026-09-13 13:13 ` tmenninger
2026-09-13 16:40 ` Chuck Lever
2026-09-14 17:39 ` tmenninger [this message]
2026-09-15 14:42 ` Chuck Lever
2026-09-16 23:25 ` Tim Menninger
2026-08-31 18:22 ` [PATCH RFC 7/8] NFS: Reduce nfsiod " Chuck Lever
2026-08-31 18:22 ` [PATCH RFC 8/8] SUNRPC: Reduce xprtiod " Chuck Lever
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=20260914173958.2045683-1-tmenninger@purestorage.com \
--to=tmenninger@purestorage.com \
--cc=anna@kernel.org \
--cc=cel@kernel.org \
--cc=ebadger@everpuredata.com \
--cc=jcurley@everpuredata.com \
--cc=jiangshanlai@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=tj@kernel.org \
--cc=trondmy@kernel.org \
/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
all inboxes | Powered by JetHome®