mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-22 07:27:12 +08:00
rcutorture: Exercise DEFINE_STATIC_SRCU_FAST() and init_srcu_struct_fast()
This commit updates the initialization for the "srcu" and "srcud" torture types to use DEFINE_STATIC_SRCU_FAST() and init_srcu_struct_fast(), respectively, when reader_flavor is equal to SRCU_READ_FLAVOR_FAST. Signed-off-by: Paul E. McKenney <paulmck@kernel.org> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Cc: <bpf@vger.kernel.org> Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
This commit is contained in:
committed by
Frederic Weisbecker
parent
c5fee33f88
commit
e4ed20c160
@@ -692,10 +692,18 @@ static struct rcu_torture_ops rcu_busted_ops = {
|
||||
*/
|
||||
|
||||
DEFINE_STATIC_SRCU(srcu_ctl);
|
||||
DEFINE_STATIC_SRCU_FAST(srcu_ctlf);
|
||||
static struct srcu_struct srcu_ctld;
|
||||
static struct srcu_struct *srcu_ctlp = &srcu_ctl;
|
||||
static struct rcu_torture_ops srcud_ops;
|
||||
|
||||
static void srcu_torture_init(void)
|
||||
{
|
||||
rcu_sync_torture_init();
|
||||
if (reader_flavor & SRCU_READ_FLAVOR_FAST)
|
||||
srcu_ctlp = &srcu_ctlf;
|
||||
}
|
||||
|
||||
static void srcu_get_gp_data(int *flags, unsigned long *gp_seq)
|
||||
{
|
||||
srcutorture_get_gp_data(srcu_ctlp, flags, gp_seq);
|
||||
@@ -865,7 +873,7 @@ static void srcu_torture_expedite_current(void)
|
||||
|
||||
static struct rcu_torture_ops srcu_ops = {
|
||||
.ttype = SRCU_FLAVOR,
|
||||
.init = rcu_sync_torture_init,
|
||||
.init = srcu_torture_init,
|
||||
.readlock = srcu_torture_read_lock,
|
||||
.read_delay = srcu_read_delay,
|
||||
.readunlock = srcu_torture_read_unlock,
|
||||
@@ -897,10 +905,13 @@ static struct rcu_torture_ops srcu_ops = {
|
||||
.name = "srcu"
|
||||
};
|
||||
|
||||
static void srcu_torture_init(void)
|
||||
static void srcud_torture_init(void)
|
||||
{
|
||||
rcu_sync_torture_init();
|
||||
WARN_ON(init_srcu_struct(&srcu_ctld));
|
||||
if (reader_flavor & SRCU_READ_FLAVOR_FAST)
|
||||
WARN_ON(init_srcu_struct_fast(&srcu_ctld));
|
||||
else
|
||||
WARN_ON(init_srcu_struct(&srcu_ctld));
|
||||
srcu_ctlp = &srcu_ctld;
|
||||
}
|
||||
|
||||
@@ -913,7 +924,7 @@ static void srcu_torture_cleanup(void)
|
||||
/* As above, but dynamically allocated. */
|
||||
static struct rcu_torture_ops srcud_ops = {
|
||||
.ttype = SRCU_FLAVOR,
|
||||
.init = srcu_torture_init,
|
||||
.init = srcud_torture_init,
|
||||
.cleanup = srcu_torture_cleanup,
|
||||
.readlock = srcu_torture_read_lock,
|
||||
.read_delay = srcu_read_delay,
|
||||
|
||||
Reference in New Issue
Block a user