Date: Tue, 19 Nov 1996 23:26:09 -0700 From: Steve Passe <smp@csn.net> To: "Justin T. Gibbs" <gibbs@freefall.freebsd.org> Cc: cbrown@aracnet.com, Barney Wolff <barney@databus.com>, freebsd-smp@freebsd.org Subject: Re: reinventing vs copying Message-ID: <199611200626.XAA22816@clem.systemsix.com> In-Reply-To: Your message of "Tue, 19 Nov 1996 21:43:24 PST." <199611200543.VAA05726@freefall.freebsd.org>
index | next in thread | previous in thread | raw e-mail
Hi,
> >Bruce Evan's code avoids masking INTs unless the
> >kernel is already servicing the same INT. This greatly diminishes the
> >occurance of lost INTs.
>
> Can't you completely eliminate lost INTs with the following algorithm?
>
> while in ISR {
> if interrupt happens {
> mask interrupt
> set flag to call ISR again
> }
> }
> unmask interrupt if masked.
> call ISR if flag is set.
possibly, the devil is in the details. I think this is sortof what Bruce's
patch does, and perhaps it even eliminates lost INTs as oppossed to "greatly
diminishing" them as I earlier said. I've been going 6 different directions
lately and just haven't had time to look at this issue properly...
I encourage any INTerrupt experts out there to analyize vector.s/icu.s
for robustness. The sections in question are those bracketed by APIC_IO and
APIC_LAZY.
--
Steve Passe | powered by
smp@csn.net | FreeBSD
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199611200626.XAA22816>
