[PATCH v2] ARM: SMP_TWD: make setup()/stop() reentrant

Linus Walleij linus.walleij at linaro.org
Mon Oct 22 06:14:03 EDT 2012


On Mon, Oct 22, 2012 at 7:13 AM, Shawn Guo <shawn.guo at linaro.org> wrote:

> I have seen two problems with the patch.
>
> 1. twd_timer_setup() is called on per-cpu path, and initial_setup_called
>    should be a per-cpu variable.

OK folded this into my v3 patch. I was not properly multithreaded
in my head...

> 2. When secondary cores get off-line, the clockevent devices for
>    the cores will be released.  So when they become online, the
>    clockevent devices should be registered again.

So that is how it happens. Where is the code releasing all
clock events? I was thinking this would more properly be done
in the .stop() path of the SMP TWD driver?

Right now it's not looking good because it "just so happens"
that the clockevent silently goes away in the cycle where
.stop() is called. :-(

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list