Date: Sat, 1 Apr 1995 01:59:22 +1000 From: Bruce Evans <bde@zeta.org.au> To: davidg@Root.COM, terry@cs.weber.edu Cc: freebsd-hackers@FreeBSD.org, nate@trout.sri.mt.net Subject: Re: help with splbio, splnet, spl... Message-ID: <199503311559.BAA04177@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>> Interrupts are blocked via software in FreeBSD - the interrupt controller >> isn't messed with (the interrupts are always enabled). I think you're Further interrupts are also blocked in the interrupt controller if one occurs while it is blocked in software. This has to be done if interrupts are level triggered, but it can probably be avoided (saving 2+ usec per interrupt) if interrupts are edge triggered. >> confusing its arbitration priority with the classic unix spl "tiering" that >> Terry thought we had. When presented with multiple simultaneous interrupts, >> the interrupt controller does have an arbitration priority scheme that is >> based on the interrupt number...but this nothing to do with spl tiering. Correct. The interrupt controller by default also blocks interrupts of lower (arbitration) priority than the one(s) it is servicing, but this is not under software control so it can't be used to implement spl, and it has other problems (e.g., wrong priorities) so it is not used in FreeBSD. >Unless the splbio/splclock blocking of everything else but fast wasn't >true, it's at least partiall tiered (jury still out on that, since you >haven't had time to reply to the posting I made immediately before this >one). It's partially ordered by the relation "is a subset of" on the bitmap masks considered as subsets of {0,1,..,15}. >The question I then have is why is it still called "spl" which stands >for "set priority level" if what it is really doing is blocking a >particular class of interrupts instead of all interrupts at or below >a particular level? Because lots of "machine-independent" code calls it that. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199503311559.BAA04177>