On Thu, Sep 26, 2013 at 10:19:14AM +0200, Daniel Lezcano wrote:On 09/26/2013 08:17 AM, Viresh Kumar wrote:On 26 September 2013 04:00, Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> wrote:If you introduce a list, you will have to introduce a lock to protect
it.
I missed it, should have added that :)
This lock will be in the fast path cpuidle_idle_call with the
get_driver function and conforming to the comment: "NOTE: no locks or
semaphores should be used here".
A lock has been introduced in this function already and the system hangs
with 1024 cpus.
Hmm... I see.. I didn't knew about this expectation.. What about a rcu
read/write lock? As far as I know its too lightweight... Can we have that
in fast path?
Nope, we can't use rcu in the idle path :)
http://lists.infradead.org/pipermail/linux-arm-kernel/2012-February/083054.html
But you should be able to use SRCU in the idle path, if that helps.