rcu: Add diagnostics for rcutorture writer stall warning
This commit adds any in-the-future ->gp_seq_needed fields to the diagnostics for an rcutorture writer stall warning message. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
This commit is contained in:
parent
cd23ac8ddb
commit
47199a0812
|
@ -606,11 +606,32 @@ EXPORT_SYMBOL_GPL(rcu_sched_force_quiescent_state);
|
||||||
*/
|
*/
|
||||||
void show_rcu_gp_kthreads(void)
|
void show_rcu_gp_kthreads(void)
|
||||||
{
|
{
|
||||||
|
int cpu;
|
||||||
|
struct rcu_data *rdp;
|
||||||
|
struct rcu_node *rnp;
|
||||||
struct rcu_state *rsp;
|
struct rcu_state *rsp;
|
||||||
|
|
||||||
for_each_rcu_flavor(rsp) {
|
for_each_rcu_flavor(rsp) {
|
||||||
pr_info("%s: wait state: %d ->state: %#lx\n",
|
pr_info("%s: wait state: %d ->state: %#lx\n",
|
||||||
rsp->name, rsp->gp_state, rsp->gp_kthread->state);
|
rsp->name, rsp->gp_state, rsp->gp_kthread->state);
|
||||||
|
rcu_for_each_node_breadth_first(rsp, rnp) {
|
||||||
|
if (ULONG_CMP_GE(rsp->gp_seq, rnp->gp_seq_needed))
|
||||||
|
continue;
|
||||||
|
pr_info("\trcu_node %d:%d ->gp_seq %lu ->gp_seq_needed %lu\n",
|
||||||
|
rnp->grplo, rnp->grphi, rnp->gp_seq,
|
||||||
|
rnp->gp_seq_needed);
|
||||||
|
if (!rcu_is_leaf_node(rnp))
|
||||||
|
continue;
|
||||||
|
for_each_leaf_node_possible_cpu(rnp, cpu) {
|
||||||
|
rdp = per_cpu_ptr(rsp->rda, cpu);
|
||||||
|
if (rdp->gpwrap ||
|
||||||
|
ULONG_CMP_GE(rsp->gp_seq,
|
||||||
|
rdp->gp_seq_needed))
|
||||||
|
continue;
|
||||||
|
pr_info("\tcpu %d ->gp_seq_needed %lu\n",
|
||||||
|
cpu, rdp->gp_seq_needed);
|
||||||
|
}
|
||||||
|
}
|
||||||
/* sched_show_task(rsp->gp_kthread); */
|
/* sched_show_task(rsp->gp_kthread); */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue