From: Frederic Weisbecker <frederic@kernel.org>
To: LKML <linux-kernel@vger.kernel.org>
Cc: "Paul E. McKenney" <paulmck@kernel.org>,
Boqun Feng <boqun.feng@gmail.com>,
Joel Fernandes <joel@joelfernandes.org>,
Josh Triplett <josh@joshtriplett.org>,
Lai Jiangshan <jiangshanlai@gmail.com>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Neeraj Upadhyay <neeraj.upadhyay@amd.com>,
Steven Rostedt <rostedt@goodmis.org>,
Uladzislau Rezki <urezki@gmail.com>,
Zqiang <qiang.zhang1211@gmail.com>, rcu <rcu@vger.kernel.org>,
Alexei Starovoitov <ast@kernel.org>,
Andrii Nakryiko <andrii@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Kent Overstreet <kent.overstreet@linux.dev>,
bpf@vger.kernel.org, Neeraj Upadhyay <Neeraj.Upadhyay@amd.com>,
Frederic Weisbecker <frederic@kernel.org>
Subject: [PATCH 13/16] rcutorture: Add srcu_read_lock_lite() support to rcutorture.reader_flavor
Date: Tue, 12 Nov 2024 15:51:56 +0100 [thread overview]
Message-ID: <20241112145159.23032-14-frederic@kernel.org> (raw)
In-Reply-To: <20241112145159.23032-1-frederic@kernel.org>
From: "Paul E. McKenney" <paulmck@kernel.org>
This commit causes bit 0x4 of rcutorture.reader_flavor to select the new
srcu_read_lock_lite() and srcu_read_unlock_lite() functions.
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Andrii Nakryiko <andrii@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Kent Overstreet <kent.overstreet@linux.dev>
Cc: <bpf@vger.kernel.org>
Reviewed-by: Neeraj Upadhyay <Neeraj.Upadhyay@amd.com>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
---
Documentation/admin-guide/kernel-parameters.txt | 4 ++--
kernel/rcu/rcutorture.c | 7 +++++++
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 52922727006f..203ec51e41d4 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -5431,8 +5431,8 @@
If there is more than one bit set, the readers
are entered from low-order bit up, and are
exited in the opposite order. For SRCU, the
- 0x1 bit is normal readers and the 0x2 bit is
- for NMI-safe readers.
+ 0x1 bit is normal readers, 0x2 NMI-safe readers,
+ and 0x4 light-weight readers.
rcutorture.shuffle_interval= [KNL]
Set task-shuffle interval (s). Shuffling tasks
diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
index 405decec3367..a313cdcb0960 100644
--- a/kernel/rcu/rcutorture.c
+++ b/kernel/rcu/rcutorture.c
@@ -658,6 +658,11 @@ static int srcu_torture_read_lock(void)
WARN_ON_ONCE(idx & ~0x1);
ret += idx << 1;
}
+ if (reader_flavor & 0x4) {
+ idx = srcu_read_lock_lite(srcu_ctlp);
+ WARN_ON_ONCE(idx & ~0x1);
+ ret += idx << 2;
+ }
return ret;
}
@@ -683,6 +688,8 @@ srcu_read_delay(struct torture_random_state *rrsp, struct rt_read_seg *rtrsp)
static void srcu_torture_read_unlock(int idx)
{
WARN_ON_ONCE((reader_flavor && (idx & ~reader_flavor)) || (!reader_flavor && (idx & ~0x1)));
+ if (reader_flavor & 0x4)
+ srcu_read_unlock_lite(srcu_ctlp, (idx & 0x4) >> 2);
if (reader_flavor & 0x2)
srcu_read_unlock_nmisafe(srcu_ctlp, (idx & 0x2) >> 1);
if ((reader_flavor & 0x1) || !(reader_flavor & 0x7))
--
2.46.0
next prev parent reply other threads:[~2024-11-12 14:52 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-12 14:51 [PATCH 00/16] SRCU for v6.13 Frederic Weisbecker
2024-11-12 14:51 ` [PATCH 01/16] srcu: Replace WARN_ON_ONCE() with BUILD_BUG_ON() if possible Frederic Weisbecker
2024-11-12 14:51 ` [PATCH 02/16] srcu: Rename srcu_might_be_idle() to srcu_should_expedite() Frederic Weisbecker
2024-11-12 14:51 ` [PATCH 03/16] srcu: Introduce srcu_gp_is_expedited() helper function Frederic Weisbecker
2024-11-12 14:51 ` [PATCH 04/16] srcu: Renaming in preparation for additional reader flavor Frederic Weisbecker
2024-11-12 14:51 ` [PATCH 05/16] srcu: Bit manipulation changes " Frederic Weisbecker
2024-11-12 14:51 ` [PATCH 06/16] srcu: Standardize srcu_data pointers to "sdp" and similar Frederic Weisbecker
2024-11-12 14:51 ` [PATCH 07/16] srcu: Improve srcu_read_lock{,_nmisafe}() comments Frederic Weisbecker
2024-11-12 14:51 ` [PATCH 08/16] srcu: Create CPP macros for normal and NMI-safe SRCU readers Frederic Weisbecker
2024-11-12 14:51 ` [PATCH 09/16] srcu: Add srcu_read_lock_lite() and srcu_read_unlock_lite() Frederic Weisbecker
2024-11-12 14:51 ` [PATCH 10/16] srcu: Allow inlining of __srcu_read_{,un}lock_lite() Frederic Weisbecker
2024-11-12 14:51 ` [PATCH 11/16] rcutorture: Expand RCUTORTURE_RDR_MASK_[12] to eight bits Frederic Weisbecker
2024-11-12 14:51 ` [PATCH 12/16] rcutorture: Add reader_flavor parameter for SRCU readers Frederic Weisbecker
2024-11-12 14:51 ` Frederic Weisbecker [this message]
2024-11-12 14:51 ` [PATCH 14/16] rcutorture: Add light-weight SRCU scenario Frederic Weisbecker
2024-11-12 14:51 ` [PATCH 15/16] refscale: Add srcu_read_lock_lite() support using "srcu-lite" Frederic Weisbecker
2024-11-12 14:51 ` [PATCH 16/16] srcu: Improve srcu_read_lock_lite() kernel-doc comment Frederic Weisbecker
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=20241112145159.23032-14-frederic@kernel.org \
--to=frederic@kernel.org \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=boqun.feng@gmail.com \
--cc=bpf@vger.kernel.org \
--cc=jiangshanlai@gmail.com \
--cc=joel@joelfernandes.org \
--cc=josh@joshtriplett.org \
--cc=kent.overstreet@linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=neeraj.upadhyay@amd.com \
--cc=paulmck@kernel.org \
--cc=peterz@infradead.org \
--cc=qiang.zhang1211@gmail.com \
--cc=rcu@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=urezki@gmail.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