Skip site navigation (1)Skip section navigation (2)
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>