Comprobación de errores 0xF2: HARDWARE_INTERRUPT_STORM

La comprobación de errores de HARDWARE_INTERRUPT_STORM tiene un valor de 0x000000F2. Esto indica que el kernel detectó una tormenta de interrupción.

Importante

Este artículo es para programadores. Si es un cliente que ha recibido un código de error de pantalla azul mientras usa el equipo, consulte Solución de errores de pantalla azul.

parámetros de HARDWARE_INTERRUPT_STORM

Parámetro Descripción
1 Dirección del ISR (o el primer ISR de la cadena) conectado al vector de interrupción de tormenta
2 Valor de contexto de ISR
3 Dirección del objeto de interrupción para el vector de interrupción de tormenta
4 0x1 si el ISR no está encadenado, 0x2 si el ISR está encadenado

Causa

Esta comprobación de errores indica que el kernel ha detectado una tormenta de interrupción. Una tormenta de interrupción se define como una señal de interrupción desencadenada de nivel que permanece en el estado asertivo. Esto es fatal para el sistema de la manera en que el sistema se bloquea duro, o "bloqueo de autobús".

Esto puede ocurrir debido a lo siguiente:

  • Una pieza de hardware no libera su señal de interrupción después de que el controlador del dispositivo le indique que lo haga.
  • Un controlador de dispositivo no indica a su hardware que libere la señal de interrupción porque no cree que la interrupción se inició desde su hardware.
  • Un controlador de dispositivo reclama la interrupción aunque la interrupción no se haya iniciado desde su hardware. Tenga en cuenta que esto solo puede ocurrir cuando varios dispositivos comparten la misma IRQ.
  • El ELCR (registro de control de nivel de borde) se establece incorrectamente.
  • Los dispositivos desencadenados por interrupciones perimetrales y de nivel comparten un IRQ.

Todos estos casos bloquearán al instante el sistema. En lugar de colgar de forma dura el sistema, se inicia esta comprobación de errores, ya que en muchos casos puede identificar al culpable.

Cuando se produce la comprobación de errores, el módulo que contiene el ISR (rutina de servicio de interrupción) de IRQ de tormenta se muestra en la pantalla. Este es un ejemplo de lo que vería:

*** STOP: 0x000000F2 (0xFCA7C55C, 0x817B9B28, 0x817D2AA0, 0x00000002)
An interrupt storm has caused the system to hang.
*** Address FCA7C55C base at FCA72000, Datestamp 3A72BDEF - ACPI.sys

En caso de que el cuarto parámetro sea un 0x00000001, es muy probable que el módulo señalado sea el culpable. El controlador está roto o el hardware no funciona correctamente.

En el caso de que el cuarto parámetro sea un 0x00000002, el módulo al que se apunta es el primer ISR de la cadena y nunca se garantiza que sea el culpable.

Resolución

Un usuario que experimenta esta comprobación de errores repetidamente debe intentar aislar el problema buscando los dispositivos que están en el mismo IRQ que el que el módulo es un controlador para (en este caso, la misma IRQ que USA ACPI).