Re: [PATCH tip/core/rcu 06/13] rcu: Add online/offline info to stall warning message

From: Josh Triplett
Date: Tue Oct 06 2015 - 13:15:31 EST


On Tue, Oct 06, 2015 at 09:13:41AM -0700, Paul E. McKenney wrote:
> This commit makes the RCU CPU stall warning message print online/offline
> indications immediately after the CPU number. A "?" indicates global
> offline, a "," global online, and a "!" indicates RCU believes that the
> CPU is offline and "." otherwise, both right after the CPU number.
> So for CPU 10, you would normally see "10,.:" indicating that everything
> believes that the CPU is online.

This explanation doesn't seem to agree with the actual characters used.
These use 'O', 'o', and 'N', instead, with '.' for "true" in all three
cases. And the output from the code includes a '-' after the CPU
number.

Also, this output needs matching documentation in
src/linux/Documentation/RCU/stallwarn.txt, ideally added as part of the
same commit.

> Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
> ---
> kernel/rcu/tree_plugin.h | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
> index 06116ae6dfd7..57ed9c13ae5a 100644
> --- a/kernel/rcu/tree_plugin.h
> +++ b/kernel/rcu/tree_plugin.h
> @@ -1702,8 +1702,12 @@ static void print_cpu_stall_info(struct rcu_state *rsp, int cpu)
> ticks_value = rsp->gpnum - rdp->gpnum;
> }
> print_cpu_stall_fast_no_hz(fast_no_hz, cpu);
> - pr_err("\t%d: (%lu %s) idle=%03x/%llx/%d softirq=%u/%u fqs=%ld %s\n",
> - cpu, ticks_value, ticks_title,
> + pr_err("\t%d-%c%c%c: (%lu %s) idle=%03x/%llx/%d softirq=%u/%u fqs=%ld %s\n",
> + cpu,
> + "O."[!!cpu_online(cpu)],
> + "o."[!!(rdp->grpmask & rdp->mynode->qsmaskinit)],
> + "N."[!!(rdp->grpmask & rdp->mynode->qsmaskinitnext)],
> + ticks_value, ticks_title,
> atomic_read(&rdtp->dynticks) & 0xfff,
> rdtp->dynticks_nesting, rdtp->dynticks_nmi_nesting,
> rdp->softirq_snap, kstat_softirqs_cpu(RCU_SOFTIRQ, cpu),
> --
> 2.5.2
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/