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@linaro.org 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.h...
But you should be able to use SRCU in the idle path, if that helps.
Thanx, Paul