Other Types of Interrupts

Besides edge- and level-triggered IRQs, some more less common flow types are also possible. The kernel also provides default handlers for them.

□ Modern IRQ hardware requires only very little flow handling. Only one chip-specific function needs to be called after IRQ processing is finished: chip->eoi. The default handler for this type is handle_fasteoi_irq. It is basically identical with handle_level_irq except that interaction with the controller chip is only required at the very end.

□ Really simple interrupts that require no flow control at all are managed by handle_simple_irq. The function can also be used if a caller wants to handle the flow itself.

□ Per-CPU IRQs, that is, IRQs that can only happen on one specific CPU of a multiprocessor system, are handled by handle_percpu_irq. The function acknowledges the IRQ after reception and calls the EOI routine after processing. The implementation is very simple because no locking is required — the code can by definition only run on a single CPU.

Continue reading here: Registering IRQs

Was this article helpful?

0 0