Interrupt Trigger
There are two types of trigger mechanisms, level-triggered interrupts and edge-triggered interrupts.
All ISA and VDEVICE interrupts are edge-triggered. PCI/PCIX and PCI-E buses define two types of interrupts, Level Signalled Interrupts (LSI) and Message Signalled Interrupts (MSI). LSIs are level-triggered, and MSIs are edge-triggered. PCI/PCIX device drivers in AIX® must handle only level-triggered interrupts even though edge-triggered interrupts using MSIs are supported by PCIX. Similarly, even though PCI-E supports LSI interrupts, all PCI-E interrupts are MSIs only in AIX, and are therefore edge-triggered. Consequently, all PCI-E device drivers for AIX are required to handle only edge-triggered interrupts.
A key difference between the edge-triggered and level-triggered interrupts is interrupt sharing. Level-triggered interrupts can be shared. Edge-triggered interrupts cannot be shared. Because they cannot be shared, edge-triggered interrupt handlers should pass the INTR_EDGE flag on the i_init() kernel service.