Partilhar via


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).