diff options
| author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2015-01-22 17:32:06 -0500 | 
|---|---|---|
| committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2015-03-11 16:22:38 -0400 | 
| commit | 237a0f2193c6daf9b1edd7fd15d55e680f268952 (patch) | |
| tree | 7f7c0b994878808a47842138a3026620fc2c6edf /kernel/rcu/tree.c | |
| parent | 18c629eaebf1814ca7f0c27327f75aa93aa4a5de (diff) | |
rcu: Detect stalls caused by failure to propagate up rcu_node tree
If all CPUs have passed through quiescent states, then stalls might be
due to starvation of the grace-period kthread or to failure to propagate
the quiescent states up the rcu_node combining tree.  The current stall
warning messages do not differentiate, so this commit adds a printout
of the root rcu_node structure's ->qsmask field.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/rcu/tree.c')
| -rw-r--r-- | kernel/rcu/tree.c | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 98da632d1d49..3b7e4133ca99 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c | |||
| @@ -1196,9 +1196,10 @@ static void print_other_cpu_stall(struct rcu_state *rsp, unsigned long gpnum) | |||
| 1196 | } else { | 1196 | } else { | 
| 1197 | j = jiffies; | 1197 | j = jiffies; | 
| 1198 | gpa = ACCESS_ONCE(rsp->gp_activity); | 1198 | gpa = ACCESS_ONCE(rsp->gp_activity); | 
| 1199 | pr_err("All QSes seen, last %s kthread activity %ld (%ld-%ld), jiffies_till_next_fqs=%ld\n", | 1199 | pr_err("All QSes seen, last %s kthread activity %ld (%ld-%ld), jiffies_till_next_fqs=%ld, root ->qsmask %#lx\n", | 
| 1200 | rsp->name, j - gpa, j, gpa, | 1200 | rsp->name, j - gpa, j, gpa, | 
| 1201 | jiffies_till_next_fqs); | 1201 | jiffies_till_next_fqs, | 
| 1202 | rcu_get_root(rsp)->qsmask); | ||
| 1202 | /* In this case, the current CPU might be at fault. */ | 1203 | /* In this case, the current CPU might be at fault. */ | 
| 1203 | sched_show_task(current); | 1204 | sched_show_task(current); | 
| 1204 | } | 1205 | } | 
