Fwd: SPLs and their ex-function / replacement

Joerg Sonnenberger joerg at britannica.bec.de
Tue Sep 20 10:38:06 PDT 2005

[reformated for proper line length and spacing]

On Tue, Sep 20, 2005 at 05:58:27PM +0100, Alex Burke wrote:
> Hi,
> I remember that SPLs were removed from DragonFlyBSD, but having
> read what they are for (setting the various priority levels on
> interrupt processing code so things are processed in the right
> order when interrupts/traps are received), I wondered how replacing

The concept of hierachical processing is inherited from the hardware
mechanisms of the VAX. It wasn't really used in the DragonFly / FreeBSD
kernel. There have been some special SPLs (e.g. vm and for sio), which
had a higher priority, but most of the code doesn't exploit it at all.

> them with asingle tier of critical sections works? Are there some
> interrupt priorities hard coded into the LWKT scheduler on each CPU?

No interrupt priorities other than the thread priorities exist.

> Also, just wondering how the above relates to converting the interrupt
> processing stuff to run in a thread context for each driver...does
> that allow interrupts to be scheduled by normal means (I would guess
> LWKT) rather than having a special mechanism?

Well, that's part of the result. The big reason is to allow interrupts
to block and wait for other resources like tokens. That reduces the work
that has to be moved out of drivers a lot.


More information about the Kernel mailing list