Sto implementando un driver PCIe e vorrei capire a che livello possono essere o dovrebbero essere abilitati / disabilitati gli interrupt. Non intendo specificare il sistema operativo, poiché presumo che dovrebbe essere rilevante per qualsiasi piattaforma. Per livelli intendo quanto segue:
- Sistema operativo specifico interrompe il framework di gestione
- Gli interrupt possono essere disabilitati o abilitati nei registri dello spazio di configurazione PCI / PCIe, ad es. Il registro COMMAND
- Gli interrupt possono anche essere mascherati a livello di dispositivo, ad esempio possiamo configurare il dispositivo in modo da non attivare determinati interrupt sull'host
Comprendo che qualunque tipo di interruzione venga utilizzato su PCIe (emulazione INTx, MSI o MSI-X), deve essere consegnato al sistema operativo host.
Quindi la mia domanda è: dobbiamo effettivamente abilitare o disabilitare gli interrupt su ogni livello o è sufficiente solo il più vicino all'hardware, ad esempio nei registri PCI pertinenti?