0xF2 de Verificação de Bugs: HARDWARE_INTERRUPT_STORM
O bug HARDWARE_INTERRUPT_STORM marcar tem um valor de 0x000000F2. Isso indica que o kernel detectou uma tempestade de interrupção.
Importante
Este artigo é para programadores. Se você for um cliente que recebeu um código de erro de tela azul ao usar o computador, consulte Solucionar erros de tela azul.
Parâmetros de HARDWARE_INTERRUPT_STORM
Parâmetro | Descrição |
---|---|
1 | Endereço do ISR (ou primeiro ISR na cadeia) conectado ao vetor de interrupção de tempestade |
2 | Valor de contexto ISR |
3 | Endereço do objeto de interrupção para o vetor de interrupção de tempestade |
4 | 0x1 se o ISR não estiver encadeado, 0x2 se o ISR estiver encadeado |
Causa
Essa verificação de bug indica que o kernel detectou uma tempestade de interrupção. Uma tempestade de interrupção é definida como um sinal de interrupção disparado em nível permanecendo no estado declarado. Isso é fatal para o sistema da maneira que o sistema trava duramente, ou "bloqueio de ônibus".
Isso pode acontecer devido ao seguinte:
- Uma parte do hardware não libera seu sinal de interrupção depois de ser instruído a fazê-lo pelo driver do dispositivo.
- Um driver de dispositivo não instrui seu hardware a liberar o sinal de interrupção porque não acredita que a interrupção tenha sido iniciada a partir de seu hardware.
- Um driver de dispositivo declara a interrupção mesmo que a interrupção não tenha sido iniciada de seu hardware. Observe que isso só pode ocorrer quando vários dispositivos estão compartilhando o mesmo IRQ.
- O ELCR (registro de controle de nível de borda) está definido incorretamente.
- Os dispositivos disparados por interrupção de borda e nível compartilham um IRQ.
Todos esses casos travarão seu sistema instantaneamente. Em vez de pendurar o sistema, essa verificação de bugs é iniciada, pois, em muitos casos, pode identificar o culpado.
Quando ocorre a verificação de bugs, o módulo que contém o ISR (rotina de serviço de interrupção) do IRQ storming é exibido na tela. Este é um exemplo do que você veria:
*** STOP: 0x000000F2 (0xFCA7C55C, 0x817B9B28, 0x817D2AA0, 0x00000002)
An interrupt storm has caused the system to hang.
*** Address FCA7C55C base at FCA72000, Datestamp 3A72BDEF - ACPI.sys
Caso o quarto parâmetro seja um 0x00000001, o módulo apontado é muito provavelmente o culpado. O driver está quebrado ou o hardware está funcionando mal.
Caso o quarto parâmetro seja um 0x00000002, o módulo apontado é o primeiro ISR na cadeia e nunca tem garantia de ser o culpado.
Resolução
Um usuário com essa verificação de bug repetidamente deve tentar isolar o problema procurando dispositivos que estejam no mesmo IRQ para o qual o módulo é um driver (nesse caso, o mesmo IRQ que a ACPI está usando).