Re: [PATCH] tick/broadcast-hrtimer : Fix suspicious RCU usage in idle loop

From: Peter Zijlstra
Date: Mon Mar 02 2015 - 09:54:14 EST


On Thu, Feb 26, 2015 at 08:52:02AM +0530, Preeti U Murthy wrote:
> The hrtimer mode of broadcast queues hrtimers in the idle entry
> path so as to wakeup cpus in deep idle states.

Callgraph please...

> hrtimer_{start/cancel}
> functions call into tracing which uses RCU. But it is not legal to call
> into RCU in cpuidle because it is one of the quiescent states. Hence
> protect this region with RCU_NONIDLE which informs RCU that the cpu
> is momentarily non-idle.

It it not clear to me that every user of bc_set_next() is from IDLE.
>From what I can tell it ends up being clockevents_program_event() and
that is called quite a lot.

Why is bc_set_next() a good function to annotate?
--
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/