Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Jun 2000 10:50:44 -0600
From:      Chuck Paterson <cp@bsdi.com>
To:        Matthew Dillon <dillon@apollo.backplane.com>
Cc:        David Greenman <dg@root.com>, freebsd-smp@freebsd.org
Subject:   Re: Stepping on Toes 
Message-ID:  <200006261650.KAA17801@berserker.bsdi.com>

next in thread | raw e-mail | index | archive | help

}
}    Even with interrupt threads we have the GiantMutex issue... the same
}    issue that we have with our current MP implementation.  We cannot remove
}    SPL's until we remove the GiantMutex, and we cannot remove GiantMutex
}    without major modifications to just about every single source file in sys/
}


In general this isn't true. If you get to the point where

1)	All entrance to unsafe code is proteced by Giant.
2)	Tsleep and friend if any release Giant when they
	a process is suspended and re-acquire it on exit
3)	Interrupts have a context to run in.
4)	You have one or more scheduling locks.

Then you can just turn spls into a nop. There is lots of hand waving
in regards to details at this point. BSD/OS SMPng is the existance
proof.


It seems like one of the major problems in retaining spls during
the change over period is that they don't much useful, and effectively
push everything under Giant. 

    Grabbing a spl will only block interrupts, it will not give
    any protection against an interrupt thread which has already
    started.

This means that any device which might be blocked by splbio() can
not be brought out from under the Giant lock until all instances
of splbio have been removed.

Chuck


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200006261650.KAA17801>