rcutorture: Separate warnings for each failure type
authorPaul E. McKenney <paulmck@kernel.org>
Wed, 14 Aug 2019 19:02:40 +0000 (12:02 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Sat, 5 Oct 2019 18:50:03 +0000 (11:50 -0700)
Currently, each of six different types of failure triggers a
single WARN_ON_ONCE(), and it is then necessary to stare at the
rcu_torture_stats(), Reader Pipe, and Reader Batch lines looking for
inappropriately non-zero values.  This can be annoying and error-prone,
so this commit provides a separate WARN_ON_ONCE() for each of the
six error conditions and adds short comments to each to ease error
identification.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
kernel/rcu/rcutorture.c

index 3c9feca..5ac4672 100644 (file)
@@ -1442,15 +1442,18 @@ rcu_torture_stats_print(void)
                n_rcu_torture_barrier_error);
 
        pr_alert("%s%s ", torture_type, TORTURE_FLAG);
-       if (atomic_read(&n_rcu_torture_mberror) != 0 ||
-           n_rcu_torture_barrier_error != 0 ||
-           n_rcu_torture_boost_ktrerror != 0 ||
-           n_rcu_torture_boost_rterror != 0 ||
-           n_rcu_torture_boost_failure != 0 ||
+       if (atomic_read(&n_rcu_torture_mberror) ||
+           n_rcu_torture_barrier_error || n_rcu_torture_boost_ktrerror ||
+           n_rcu_torture_boost_rterror || n_rcu_torture_boost_failure ||
            i > 1) {
                pr_cont("%s", "!!! ");
                atomic_inc(&n_rcu_torture_error);
-               WARN_ON_ONCE(1);
+               WARN_ON_ONCE(atomic_read(&n_rcu_torture_mberror));
+               WARN_ON_ONCE(n_rcu_torture_barrier_error);  // rcu_barrier()
+               WARN_ON_ONCE(n_rcu_torture_boost_ktrerror); // no boost kthread
+               WARN_ON_ONCE(n_rcu_torture_boost_rterror); // can't set RT prio
+               WARN_ON_ONCE(n_rcu_torture_boost_failure); // RCU boost failed
+               WARN_ON_ONCE(i > 1); // Too-short grace period
        }
        pr_cont("Reader Pipe: ");
        for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++)