Subject: Re: understanding spl levels
To: Hubert Feyrer <hubert.feyrer@informatik.fh-regensburg.de>
From: Charles M. Hannum <abuse@spamalicious.com>
List: tech-kern
Date: 03/29/2004 19:55:46
On Monday 29 March 2004 11:41 am, Hubert Feyrer wrote:
> Reading Uresha Valhalla's Unix Internals, and comparing the paraagraph on
> spls against NetBSD, I wonder if it can be said/is true that
> * splnet is used for device driver interrupts
> * splsoftnet is used for network protocol processing
> ?
It's not quite that simple. splsoftnet() is used for some of the "lower half"
of network drivers as well, in places where it's not necessary to block
hardware interrupts.
I made this change back in... 1994 or 1995? Before that, most of this work
was done at splimp(), which blocks almost everything. In particular, it was
blocking the "lower half" of tty drivers and causing severe performance
problems for tty-based protocols on many systems.