Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 47199a08 authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

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: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
parent cd23ac8d
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -606,11 +606,32 @@ EXPORT_SYMBOL_GPL(rcu_sched_force_quiescent_state);
 */
void show_rcu_gp_kthreads(void)
{
	int cpu;
	struct rcu_data *rdp;
	struct rcu_node *rnp;
	struct rcu_state *rsp;

	for_each_rcu_flavor(rsp) {
		pr_info("%s: wait state: %d ->state: %#lx\n",
			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); */
	}
}