Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Jul 1995 09:31:01 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        bde@zeta.org.au, terry@cs.weber.edu
Cc:        freebsd-hackers@freebsd.org, hm@ernie.altona.hamburg.com
Subject:   Re: FreeBSD 2.0.5 system hangs
Message-ID:  <199507202331.JAA10951@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>> Perhaps because it isn't true.  IRQ 7 is the interrupt for garbage
>> trapped interrupts.
>------
>> Using it for sio shouldn't cause a hang.  Sio will
>> ignore any extra interrupts and recover from others.
>------

>I wasn't aware of this !

>I thought that sio did wierd things in it's probe to cause the interrupt
>to be generated (a message to that effect from you a couple of days ago
>is what gave me that impression).

Only in the probe.  It actually does weird things to cause the interrupt
to NOT be generated so that it can test the interrupt-pending bit in the
8259.  I didn't remember the interrupt glitch problem when I wrote the
probe.  Interrupt glitches are not maskable in the 8259.  The probe
disables interrupts in both the cpu and the 8259, but DELAY() reenables
them in the cpu and glitches are maskable in the 8259.  This problem
also affects siointrts, the nonstandard version of siointr that does
timestamps.

BTW, our NMI handling is very broken.  The NMI handler is a trap gate
but should be an interrupt gate, and the normal trap and interrupt
entry code isn't quite right for it (interrupts probably need to
be reenabled - DELAY() may do it even if you don't want it - and
the NMI may recurse after the each iret from a normal interrupt or
trap handler).  Fortunately NMIs are rare.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199507202331.JAA10951>