In /proc/interrupts, I can see that some interrupt numbers belong to IO-APIC-fasteoi and some belong to IO-APIC-edge.
What is the difference between the two types of interrupt controllers?
An interrupt is simply a signal that the hardware can send when it wants the processor's attention. Linux handles interrupts in much the same way that it handles signals in user space. For the most part, a driver need only register a handler for its device's interrupts, and handle them properly when they arrive.
The output of “/proc/interrupts” shows all the different interrupts that have handlers (Interrupt Service Routines – ISRs) registered for them. The first column indicates the IRQ number. Subsequent columns indicate how many interrupts have been generated for the IRQ number on different CPU cores.
The difference lies in the way the interrupts are triggered. The -edge interrupt are edge triggered. This is a rising level on the interrupt line. The -fasteoi interrupts are level interrupts that are triggered until the interrupt event is acknowledged in the programmable interrupt controller (PIC). The EOI stands for End Of Interrupt. See also Wikipedia article on EOI.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With