Subject: Re: Interrupt, interrupt threads, continuations, and kernel lwps
To: Pavel Cahyna <pavel@netbsd.org>
From: Andrew Doran <ad@netbsd.org>
List: tech-kern
Date: 06/16/2007 14:26:48
On Fri, Jun 15, 2007 at 11:20:42PM +0200, Pavel Cahyna wrote:

> What would this mean? Replacing splbio, splnet, etc. by
> spllow/splmid/splhigh?

That's the plan. It depends on the platform but looks roughly like this:

bio, net, tty, vm -> low
sched, clock, audio -> mid
statclock, serial, ipi -> high

Audio will need to start out life at low since it still needs the kernel
lock. When the audio locking stuff is complete it can move into mid. Some
of the goals are:

o Define and enforce a hierarchy since there is no such thing now.

o Make the hierarchy simple so that it defeats spinlock ordering problems,
  is easy to understand and easy to implement.

o Provide enough levels that in the common case, we don't screw up things
  like timekeeping or serial comms.

In the long term, the soft levels would stay but only if appropriate for MD
code. That is, if the soft interrupt dispatch code wants to make use of
them. In the near term we need them until the end users begin to make use
of locks or other exclusion mechanisms.

Andrew