Controllo bug 0xF2: HARDWARE_INTERRUPT_STORM
Il controllo dei bug HARDWARE_INTERRUPT_STORM ha un valore pari a 0x000000F2. Ciò indica che il kernel ha rilevato una tempesta di interrupt.
Importante
Questo articolo è destinato ai programmatori. Se si è un cliente che ha ricevuto un codice di errore della schermata blu durante l'uso del computer, vedere Risolvere gli errori della schermata blu.
parametri HARDWARE_INTERRUPT_STORM
Parametro | Descrizione |
---|---|
1 | Indirizzo dell'ISR (o primo ISR nella catena) connesso al vettore di interrupt storming |
2 | Valore del contesto ISR |
3 | Indirizzo dell'oggetto interrupt per il vettore di interruzione storming |
4 | 0x1 se l'ISR non è concatenato, 0x2 se l'ISR è concatenato |
Causa
Questo controllo di bug indica che il kernel ha rilevato una tempesta di interrupt. Una tempesta di interrupt viene definita come un segnale di interrupt attivato a livello che rimane nello stato asserto. Questo è fatale per il sistema nel modo in cui il sistema si blocca duramente, o "blocco bus".
Ciò può verificarsi a causa dei seguenti:
- Un componente hardware non rilascia il segnale di interruzione dopo essere stato detto a tale scopo dal driver del dispositivo.
- Un driver di dispositivo non indica all'hardware di rilasciare il segnale di interruzione perché non ritiene che l'interrupt sia stato avviato dall'hardware.
- Un driver di dispositivo richiede l'interrupt anche se l'interrupt non è stato avviato dall'hardware. Si noti che questo problema può verificarsi solo quando più dispositivi condividono lo stesso runtime di integrazione.
- Il registro di controllo elcr (registro di controllo a livello di arco) è impostato in modo non corretto.
- I dispositivi con interruzione edge e livello attivati condividono un runtime di integrazione.
Tutti questi casi non bloccano immediatamente il sistema. Invece di appendere il sistema, questo controllo di bug viene avviato perché in molti casi può identificare il colpevole.
Quando si verifica il controllo di bug, il modulo contenente la routine del servizio di interruzione (interrupt service) del runtime di integrazione di storming viene visualizzato sullo schermo. Di seguito è riportato un esempio di ciò che viene visualizzato:
*** STOP: 0x000000F2 (0xFCA7C55C, 0x817B9B28, 0x817D2AA0, 0x00000002)
An interrupt storm has caused the system to hang.
*** Address FCA7C55C base at FCA72000, Datestamp 3A72BDEF - ACPI.sys
Nel caso in cui il quarto parametro sia un 0x00000001, il modulo a cui punta è molto probabilmente il colpevole. Il driver è rotto o l'hardware non funziona correttamente.
Nel caso in cui il quarto parametro sia un 0x00000002, il modulo a cui punta è il primo ISR nella catena e non è mai garantito che sia il colpevole.
Risoluzione
Un utente che riscontra ripetutamente questo controllo di bug deve tentare di isolare il problema cercando i dispositivi che si trovano nello stesso IRQ di quello per il quale il modulo è un driver per (in questo caso lo stesso IRQ usato da ACPI).