rcu self-detected stall messages on OMAP3, 4 boards
Paul E. McKenney
paulmck at linux.vnet.ibm.com
Fri Sep 21 14:58:27 EDT 2012
On Fri, Sep 21, 2012 at 06:08:59PM +0000, Paul Walmsley wrote:
> cc Frederic Weisbecker - context is here:
>
> http://marc.info/?l=linux-kernel&m=134749030206016&w=2
>
> On Thu, 20 Sep 2012, Paul E. McKenney wrote:
>
> > Fair point. I am wondering whether there is some path into the idle
> > loop that somehow avoids telling RCU that the CPU has in face entered
> > idle. There needs to be an rcu_idle_enter() call on the way to idle,
> > otherwise RCU CPU stall warnings are expected behavior.
>
> As far as I know, our only idle entry point is in
> arch/arm/common/process.c:cpu_idle().
In mainline, this is arch/arm/kernel/process.c, correct?
> Looking at the x86 idle entry, they call rcu_idle_{enter,exit}() inside
> {stop,start}_critical_timings(). Making that change here didn't help.
The reason x86 does this is that they have idle notifiers deeper in the
idle loop that use RCU read-side critical sections. So this was an
expected result.
> Also tried commenting out the code from the stop_critical_timings() call
> to the WARN_ON(irqs_disabled()), and adding a local_irq_enable(). That
> also didn't help, which suggests that the problem is not caused by the
> OMAP-specific PM idle code.
I must admit that you make a convincing case here. Though it does leave
me wondering what is different about Panda (and MX28, IIRC).
I may take your advice of remote access to a Panda board, though that
is likely to take a bit of time due to timezones. Regardless of the
underlying issue here, I clearly need to make the stall-warning messages
do a better job of printing out needed information.
Thanx, Paul
More information about the linux-arm-kernel
mailing list