From: Yuzhuo Jing <yuzhuo@google.com>
To: Ian Rogers <irogers@google.com>, Yuzhuo Jing <yzj@umich.edu>,
Jonathan Corbet <corbet@lwn.net>,
Davidlohr Bueso <dave@stgolabs.net>,
"Paul E . McKenney" <paulmck@kernel.org>,
Josh Triplett <josh@joshtriplett.org>,
Frederic Weisbecker <frederic@kernel.org>,
Neeraj Upadhyay <neeraj.upadhyay@kernel.org>,
Joel Fernandes <joelagnelf@nvidia.com>,
Boqun Feng <boqun.feng@gmail.com>,
Uladzislau Rezki <urezki@gmail.com>,
Steven Rostedt <rostedt@goodmis.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Lai Jiangshan <jiangshanlai@gmail.com>,
Zqiang <qiang.zhang@linux.dev>,
Andrew Morton <akpm@linux-foundation.org>,
Ingo Molnar <mingo@kernel.org>, Borislav Petkov <bp@alien8.de>,
Arnd Bergmann <arnd@arndb.de>,
Frank van der Linden <fvdl@google.com>,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
rcu@vger.kernel.org
Cc: Yuzhuo Jing <yuzhuo@google.com>
Subject: [PATCH v1 0/4] rcuscale: Add debugfs file based controls and CPU affinity offset
Date: Tue, 29 Jul 2025 19:23:43 -0700 [thread overview]
Message-ID: <20250730022347.71722-1-yuzhuo@google.com> (raw)
In an effort to add RCU benchmarks to the perf tool and to improve
the base-metal rcuscale tests, this patch series adds several auxiliary
features useful for testing tools.
This series introduces a few rcuscale options:
* writer_no_print: skip writer duration printing during shutdown, but
instead let users read from the new "writer_durations" debugfs file.
This drastically improves cleanup speed.
* block_start: an option to hold all worker thread until the new
debugfs "should_start" file is written.
* {reader,writer,kfree}_cpu_offset: the starting value of CPU affinity
for each type of threads. This can be used to avoid scheduling
different types of threads on the same CPU. The 4th patch in this
series shows drastic performance differences w/ and w/o overlaps.
This patch series creates an "rcuscale" folder in debugfs, containing
the following files:
* writer_durations: a CSV formatted file containing writer id and
writer durations.
* {reader,writer,kfree}_tasks: the list of kernel task PIDs for
external tools to attach to.
* should_start: a writable file to signal the start of the experiment,
used in conjunction with the new "block_start" option.
* test_complete: a readable file to indicate whether the experiment has
finished or not.
RFCs:
* Should those new files reside in debugfs or in procfs?
* What format should be used for the writer_duartions file, and what
documentations should be updated for the file format definition?
* In the 4th patch, we see different characteristics between overlap
and non-overlap. Current rcuscale creates nr_cpu readers and nr_cpu
writers, thus scheduling 2nr_cpu tasks on nr_cpu CPUs. Should we
consider changes to this behavior? Or add automatic conflict
resolutions when total threads <= nr_cpu.
Thank you!
Yuzhuo Jing (4):
rcuscale: Create debugfs file for writer durations
rcuscale: Create debugfs files for worker thread PIDs
rcuscale: Add file based start/finish control
rcuscale: Add CPU affinity offset options
.../admin-guide/kernel-parameters.txt | 29 ++
kernel/rcu/rcuscale.c | 361 +++++++++++++++++-
2 files changed, 377 insertions(+), 13 deletions(-)
--
2.50.1.552.g942d659e1b-goog
next reply other threads:[~2025-07-30 2:24 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-30 2:23 Yuzhuo Jing [this message]
2025-07-30 2:23 ` [PATCH v1 1/4] rcuscale: Create debugfs file for writer durations Yuzhuo Jing
2025-07-31 7:47 ` kernel test robot
2025-07-30 2:23 ` [PATCH v1 2/4] rcuscale: Create debugfs files for worker thread PIDs Yuzhuo Jing
2025-07-30 2:23 ` [PATCH v1 3/4] rcuscale: Add file based start/finish control Yuzhuo Jing
2025-07-30 2:23 ` [PATCH v1 4/4] rcuscale: Add CPU affinity offset options Yuzhuo Jing
2025-07-31 23:38 ` [PATCH v1 0/4] rcuscale: Add debugfs file based controls and CPU affinity offset Paul E. McKenney
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=20250730022347.71722-1-yuzhuo@google.com \
--to=yuzhuo@google.com \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=boqun.feng@gmail.com \
--cc=bp@alien8.de \
--cc=corbet@lwn.net \
--cc=dave@stgolabs.net \
--cc=frederic@kernel.org \
--cc=fvdl@google.com \
--cc=irogers@google.com \
--cc=jiangshanlai@gmail.com \
--cc=joelagnelf@nvidia.com \
--cc=josh@joshtriplett.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mingo@kernel.org \
--cc=neeraj.upadhyay@kernel.org \
--cc=paulmck@kernel.org \
--cc=qiang.zhang@linux.dev \
--cc=rcu@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=urezki@gmail.com \
--cc=yzj@umich.edu \
/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;
as well as URLs for NNTP newsgroup(s).