Re: [PATCH 19/21] cpuidle: create list of registered drivers

From: Daniel Lezcano
Date: Mon Sep 30 2013 - 14:38:02 EST


On 09/28/2013 11:33 PM, Paul E. McKenney wrote:
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.

Interesting, thanks for the pointer.

-- Daniel


--
<http://www.linaro.org/> Linaro.org â Open source software for ARM SoCs

Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog

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