Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Nov 1996 21:59:04 -0700
From:      Steve Passe <smp@csn.net>
To:        cbrown@aracnet.com
Cc:        Barney Wolff <barney@databus.com>, freebsd-smp@freebsd.org
Subject:   Re: reinventing vs copying 
Message-ID:  <199611200459.VAA22372@clem.systemsix.com>
In-Reply-To: Your message of "Tue, 19 Nov 1996 20:16:19 PST." <32928613.59D1@aracnet.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

>Are you guys still working on the "missing INT" problem?  Anyone have a
>quick
>2 line summary of the problem?

perfect timing.  I just commited a fix for the fix.  Tor Egge discovered
a missing REL_MPLOCK in the patch that I merged from code submitted by
Bruce Evans to deal with the original problem (missing REL_MPLOCK, this was
entirely my fault).

Summary:

The 8259 ICU latches an INT that occurs while that INT is masked.
The IO APIC looses any INT occuring while that INT is masked.
Intel calls this a "design consideration", I call it "brain damage".

The current kernel ISR code masks the INT it is servicing, calls the
hardware specific code, then unmasks it upon return and cleans up.
If an INT occurs between the time the hardware specific code clears its
INT latch (or last checks its register, this is a hardware specific detail),
and the point in the generic code where the INT is unmasked, the INT
will be lost by the IO APIC.

Bruce Evan's code avoids masking INTs unless the
kernel is already servicing the same INT.  This greatly diminishes the
occurance of lost INTs.  The patch just sent by Tor Egge appears
to make using Bruce's patch reasonable now.  Before this it used to
hang fairly frequently.  Note that it has had VERY little testing so I
may be putting my foot in my mouth, but it feels good (the patch, NOT
the 'foot in my mouth' thing)!


---
>Steve, one recommendation.  Could you or someone provide some basic
>level details of how
>to get SMP running on FreeBSD.  In addition could you explain how to use
>the CVT
>to get source update and such.  This might help people like me that are
>new to this
>kinda stuff but might like to help out.

start with:

http://www.freebsd.org/~fsmp/SMP/SMP.html

the "getting started" section is a little cryptic, so take notes and let
me know what isn't clear.  In particular there are many different ways
to manage the SMP "/usr/src/sys" tree in parallel to the -current
"/usr/src/sys" My example only shows one. I don't even use that method any
more.  Now I keep the SMP tree on /d1usr/src/sys, and link '/sys' to
/d1usr/src/sys. remember to restore this link whenever making anything
outside of the SMP kernel!

info on cvsup can be found by searching the announce mail archive for "cvsup",
as well as a little info at the top of "getting started".


Steve Passe	| powered by
smp@csn.net	|            FreeBSD

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6.2

mQCNAzHe7tEAAAEEAM274wAEEdP+grIrV6UtBt54FB5ufifFRA5ujzflrvlF8aoE
04it5BsUPFi3jJLfvOQeydbegexspPXL6kUejYt2OeptHuroIVW5+y2M2naTwqtX
WVGeBP6s2q/fPPAS+g+sNZCpVBTbuinKa/C4Q6HJ++M9AyzIq5EuvO0a8Rr9AAUR
tBlTdGV2ZSBQYXNzZSA8c21wQGNzbi5uZXQ+
=ds99
-----END PGP PUBLIC KEY BLOCK-----




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