rcutorture: Print end-of-test state
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 19 Apr 2018 15:43:11 +0000 (08:43 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 15 May 2018 17:32:08 +0000 (10:32 -0700)
This commit adds end-of-test state printout to help check whether RCU
shut down nicely.  Note that this printout only helps for flavors of
RCU that are not used much by the kernel.  In particular, for normal
RCU having a grace period in progress is expected behavior.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Tested-by: Nicholas Piggin <npiggin@gmail.com>
kernel/rcu/rcutorture.c

index 680c96d8c00f50b367aeb656c6e8b359a29e10c6..fd86965b33a71afba927c1624d2b8d01e24e1627 100644 (file)
@@ -1609,6 +1609,9 @@ static enum cpuhp_state rcutor_hp;
 static void
 rcu_torture_cleanup(void)
 {
+       int flags = 0;
+       unsigned long gpnum = 0;
+       unsigned long completed = 0;
        int i;
 
        rcutorture_record_test_transition();
@@ -1639,6 +1642,11 @@ rcu_torture_cleanup(void)
                fakewriter_tasks = NULL;
        }
 
+       rcutorture_get_gp_data(cur_ops->ttype, &flags, &gpnum, &completed);
+       srcutorture_get_gp_data(cur_ops->ttype, srcu_ctlp,
+                               &flags, &gpnum, &completed);
+       pr_alert("%s:  End-test grace-period state: g%lu c%lu f%#x\n",
+                cur_ops->name, gpnum, completed, flags);
        torture_stop_kthread(rcu_torture_stats, stats_task);
        torture_stop_kthread(rcu_torture_fqs, fqs_task);
        for (i = 0; i < ncbflooders; i++)