]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
torture: Add task state to writer-task stall printk()s
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 30 Jun 2016 18:56:38 +0000 (11:56 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 22 Aug 2016 17:02:59 +0000 (10:02 -0700)
This commit adds a dump of the scheduler state for stalled rcutorture
writer tasks.  This addition provides yet more debug for the intermittent
"failures to proceed", where grace periods move ahead but the rcutorture
writer tasks fail to do so.

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

index 971e2b138063a6920a96adc1f21e65619746a04b..f0f32f888ec5986f88206e097ef8ddabc62f7cec 100644 (file)
@@ -1238,6 +1238,7 @@ rcu_torture_stats_print(void)
        long pipesummary[RCU_TORTURE_PIPE_LEN + 1] = { 0 };
        long batchsummary[RCU_TORTURE_PIPE_LEN + 1] = { 0 };
        static unsigned long rtcv_snap = ULONG_MAX;
+       struct task_struct *wtp;
 
        for_each_possible_cpu(cpu) {
                for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) {
@@ -1312,10 +1313,12 @@ rcu_torture_stats_print(void)
 
                rcutorture_get_gp_data(cur_ops->ttype,
                                       &flags, &gpnum, &completed);
-               pr_alert("??? Writer stall state %s(%d) g%lu c%lu f%#x\n",
+               wtp = READ_ONCE(writer_task);
+               pr_alert("??? Writer stall state %s(%d) g%lu c%lu f%#x ->state %#lx\n",
                         rcu_torture_writer_state_getname(),
                         rcu_torture_writer_state,
-                        gpnum, completed, flags);
+                        gpnum, completed, flags,
+                        wtp == NULL ? ~0UL : wtp->state);
                show_rcu_gp_kthreads();
                rcu_ftrace_dump(DUMP_ALL);
        }