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

From: Josh Triplett
Date: Fri Feb 03 2012 - 01:12:50 EST


On Thu, Feb 02, 2012 at 10:30:07AM -0800, Paul E. McKenney wrote:
> 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" :
> "",

Seems like an improvement to me, but it also doesn't matter enough to
bikeshed further about. :)

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