[RFC PATCH 08/12] ARM: msm: use remapped PPI interrupts for local timer

Stephen Boyd sboyd at codeaurora.org
Wed May 4 01:47:50 EDT 2011


On 5/3/2011 12:04 PM, Russell King - ARM Linux wrote:
> On Tue, Apr 26, 2011 at 10:13:52AM -0700, Stephen Boyd wrote:
>> Why do we need to call local_timer_setup() on each CPU up though? It
>> would be nice to be able to just add local timers for all possible CPUs
>> at boot time and then have the clockevents core take care of enabling
>> and disabling the events as appropriate without ARM code forcing the
>> events to be UNUSED and then re-adding the events back on CPU up. I'm
>> probably missing something really obvious here.
> Firstly, because you can't access the local timer registers from non-
> local CPUs.  Secondly, when you offline a CPU, generic code unregisters
> the local timer, so whenever you online a CPU you have to add its local
> timer clockevent back again.
>
> Thirdly, you may have a system where the local timer gets powered down
> when a CPU is offlined, and so it would need reinitialization when you
> online it again.

Ok that all sounds fine and good. Thanks.

I took a peek at the APB timer on x86 and I see that apbt_setup_irq()
does an

        if (system_state == SYSTEM_BOOTING) {
                if (request_irq(adev->irq, apbt_interrupt_handler,

which is probably exactly what we want to do to handle the crash I'm
talking about. They also do a memcpy() of the clockevent and what looks
like a disable_irq() on CPU_DEAD which might all be good ideas.

-- 
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.




More information about the linux-arm-kernel mailing list