[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Spurious, interrupt, 8259A, at, IRQ7



On Mon, Dec 03, 2001 at 11:37:45PM +0000, Áncor González Sosa wrote:
> Por lo visto se está discutiendo el bug en la lista de desarrolladores del
> kernel. Parece ser que se debe a que REALMENTE el controlador de interrupciones
> de los PC da un espúreo el estar en cascada. El bug consiste más bien en
> notificar molestamente un espúreo que es conocido y se da por hecho.
> 

Como me ha entrado la curiosidad desde que vi lo que pasaba en el
ordenador de miguev me he puesto a buscar y esto es lo que he 
averiguado.

- Como se ha dicho es algo tan antiguo como el PC. Como ejemplo
  hay referencias de este problema desde antes del 486. Así que
  el bug están en notificarlo. Al menos en hacerlo sin que
  uno lo haya pedido.
  
- Sabemos que hay dos controlador de interrupciones en cascada
  pero sólo vamos a hablar del primero, el que maneja
  las interrupciones del IRQ0 al IRQ7.
  
- Pues ha ese amigo le entran las 8 líneas (IRQ0-IRQ7) de interrupción
  de unos supuestos 8 dispositivos. La cuestión es que en ocaciones
  a causa de las interferencias una de esas líneas sube aunque
  no esté conectada o el dispositivo correspondiente no la haya
  subido.
  
- El PIC lo detecta y avisa a la CPU, está lo más pronto posible
  avisa al PIC de que está lista para manejar la interrupción.
  Entonces el PIC mira sus líneas para saber, por orden de prioridad,
  cual es la primera que debe manejar la CPU. La cuestión es
  que al tratarse de ruido en un línea el cambio ha sido tan
  rápido que ahora ya no hay ninguna línea en alta.
  
- Como el PIC no sabe que hacer envía el vector de interrupción
  de la IRQ7 que es lo que hace siempre que no sabe que hacer.
  
- El kernel pasa a la rutina de servicio de la interrpción 7
  que o no existe, porque no hay dispositivo, o comprueba
  que el dispositivo que controla no fue el que puso la
  interrupción.
  
- La rutina informa de eso al nucleo que saca el mensaje.

- Si la IRQ7 está compartida por varios dispositivos
  pasa lo mismo porque todas las rutinas de servicio informan
  de que con ellas no va la historia.
  
Y uno que pensaba que las cosas eran quasi-perfectas ahí dentro...


> 
> On Mon, 3 Dec 2001 22:54:32 +0000
> Miguel Ángel Vilela <miguev@fmat.ull.es> wrote:

-- 
           /      \             Jesús Miguel Torres Jorge  a.k.a aplatanado
         /          \       __  Electronic Engineer -- www.ie.fisica.ull.es
 ----___/  _      _   \__--- /  Laboratorio de Electrónica Básica, Facultad
  \       <+>    <+>       /    Física, Universidad de La Laguna, Tenerife, 
     \     - <_>  -      /      Canary Islands, Spain --  Grupo de Usuarios
       \               /        de Linux de Canarias - http://www.gulic.org
        |_  <--->   _|          Linux User #247255 - Debian GNU/Linux Woody
      /  \ _  __  _ / \         No ePatents - http://petition.eurolinux.org
    /        \ _/       \       No LSSI -- http://www.kriptopolis.com/lssi/
   |          |          |-------------------------------------------------
  May the Free Software Force be with you...

Attachment: pgpH62z6UQ6wY.pgp
Description: PGP signature


Reply to: