Commit bf5b6435 authored by Joel Fernandes (Google)'s avatar Joel Fernandes (Google) Committed by Paul E. McKenney

rcutorture: Fix rcu_barrier successes counter

The rcutorture test module currently increments both successes and error
for the barrier test upon error, which results in misleading statistics
being printed.  This commit therefore changes the code to increment the
success counter only when the test actually passes.

This change was tested by by returning from the barrier callback without
incrementing the callback counter, thus introducing what appeared to
rcutorture to be rcu_barrier() failures.
Signed-off-by: default avatarJoel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
parent 4babd855
...@@ -169,7 +169,7 @@ static long n_rcu_torture_boost_failure; ...@@ -169,7 +169,7 @@ static long n_rcu_torture_boost_failure;
static long n_rcu_torture_boosts; static long n_rcu_torture_boosts;
static atomic_long_t n_rcu_torture_timers; static atomic_long_t n_rcu_torture_timers;
static long n_barrier_attempts; static long n_barrier_attempts;
static long n_barrier_successes; static long n_barrier_successes; /* did rcu_barrier test succeed? */
static atomic_long_t n_cbfloods; static atomic_long_t n_cbfloods;
static struct list_head rcu_torture_removed; static struct list_head rcu_torture_removed;
...@@ -1723,8 +1723,9 @@ static int rcu_torture_barrier(void *arg) ...@@ -1723,8 +1723,9 @@ static int rcu_torture_barrier(void *arg)
atomic_read(&barrier_cbs_invoked), atomic_read(&barrier_cbs_invoked),
n_barrier_cbs); n_barrier_cbs);
WARN_ON_ONCE(1); WARN_ON_ONCE(1);
} } else {
n_barrier_successes++; n_barrier_successes++;
}
schedule_timeout_interruptible(HZ / 10); schedule_timeout_interruptible(HZ / 10);
} while (!torture_must_stop()); } while (!torture_must_stop());
torture_kthread_stopping("rcu_torture_barrier"); torture_kthread_stopping("rcu_torture_barrier");
...@@ -1803,9 +1804,7 @@ static bool rcu_torture_can_boost(void) ...@@ -1803,9 +1804,7 @@ static bool rcu_torture_can_boost(void)
if (boost_warn_once == 1) if (boost_warn_once == 1)
return false; return false;
pr_alert("%s: WARN: RCU kthread priority too low to test boosting. " pr_alert("%s: WARN: RCU kthread priority too low to test boosting. Skipping RCU boost test. Try passing rcutree.kthread_prio > 1 on the kernel command line.\n", KBUILD_MODNAME);
"Skipping RCU boost test. Try passing rcutree.kthread_prio > 1 "
"on the kernel command line.\n", KBUILD_MODNAME);
boost_warn_once = 1; boost_warn_once = 1;
return false; return false;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment