* Matthew Dillon <[EMAIL PROTECTED]> [000327 12:36] wrote:
> 
> :
> :There's a paper that describes how Solaris transitioned from spl()s
> :to mutexes.  ISTR they created one mutex for each splxxx.  I'll have
> :to find this and re-read it.
> :
> :-- 
> :Dan Eischen
> 
>     I think we're using a slightly different mechanism... our spl*()'s
>     are actually interrupt bit masks.  That is, any single spl*() call
>     may mask several interrupt sources.   Turning a mask with five or six
>     bits set in it into a set of mutexes is a very expensive proposition.

I think you're thinking this:

      /-----int 1
spl -<---> int 2
      \-----int 3

spl messing with several mutexes, instead consider:

int 1 >---\
int 2 >---->-- splmutex
int 3 >---/

Where a single mutex is shared by several interrupts.

There's also this to consider:

proc0: splaaa(); splbbb();
proc1: splbbb(); splaaa();

deadlock.  Which needs to be worked out somehow.

-- 
-Alfred Perlstein - [[EMAIL PROTECTED]|[EMAIL PROTECTED]]


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to