Re: [PATCH RFC tip/core/rcu 37/41] lockdep: Add CPU-idle/offlinewarning to lockdep-RCU splat

From: Paul E. McKenney
Date: Thu Feb 02 2012 - 13:30:54 EST


On Wed, Feb 01, 2012 at 10:07:52PM -0800, Josh Triplett wrote:
> On Wed, Feb 01, 2012 at 11:41:55AM -0800, Paul E. McKenney wrote:
> > --- a/kernel/lockdep.c
> > +++ b/kernel/lockdep.c
> > @@ -4176,7 +4176,13 @@ void lockdep_rcu_suspicious(const char *file, const int line, const char *s)
> > printk("-------------------------------\n");
> > printk("%s:%d %s!\n", file, line, s);
> > printk("\nother info that might help us debug this:\n\n");
> > - printk("\nrcu_scheduler_active = %d, debug_locks = %d\n", rcu_scheduler_active, debug_locks);
> > + printk("\n%srcu_scheduler_active = %d, debug_locks = %d\n",
> > + !rcu_lockdep_current_cpu_online()
> > + ? "RCU used illegally from offline CPU!\n"
> > + : rcu_is_cpu_idle()
> > + ? "RCU used illegally from idle CPU!\n"
> > + : "",
>
> Not the usual way I've seen chained ?: indented in kernel code:
>
> cond1 ? value1 :
> cond2 ? value2 :
> value3
>
> That avoids repeated indentation over to the right, much like "else if".

I tried the following, but didn't like it:

!rcu_lockdep_current_cpu_online() ? "RCU used illegally from offline CPU!\n" :
rcu_is_cpu_idle() ? "RCU used illegally from idle CPU!\n" :
"",

Thanx, Paul

--
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/