|
|
Subscribe / Log in / New account

The tick broadcast framework

The tick broadcast framework

Posted Nov 29, 2013 23:32 UTC (Fri) by linusw (subscriber, #40300)
In reply to: The tick broadcast framework by bokr
Parent article: The tick broadcast framework

On the first question: all such external IRQs are first arbitrated before arriving at a certain CPU for handling. This means a CPU-external interrupt controller decides which CPU to wake up. It is woken up by the hardware IRQ line into the CPU. The CPU will then go to an interrupt handler and after that check for pending events again before going back to idle. On some systems all hardware IRQs are routed to CPU0.

If you *don't* want to be woken up by a certain hardware interrupt they are possible to mask off by letting your device driver call irq_set_wake(). The will then be masked off by the interrupt controller and not forwarded to the target CPU. If this is a level interrupt it will be handled the next time the CPU wakes up, if it is still asserted.

The external interrupt controller may sometimes *also* be shut down. Then the system has some hardware bootstrapping for bringing it back online before routing and delivering the interrupt.

Hope this is clear and easy to understand...


to post comments


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds