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>