In message <[EMAIL PROTECTED]>, Andrew Gallatin writes:
>I'm not sure what you mean. The problem is that Giant inhibits >scaling on SMPs and I want to get all network drivers out from under >it, not just mine. Well, that is the 10000' view. Once you try to move code out from under Giant you will find that the transition period also contains an increased risk of deadlocks because you have to alternately interface with Giant-free and Giant-protected code. I found it somewhat problematic during GEOM development that it was hard find or get a precise status on which bits of the kernel had which Giant status. As it is, I still have 37 source lines in sys/geom which fiddles Giant one way or another, some of which are probably not needed but I was unable to tell at the time and did the defensive thing. In 20/20 hindsight, I think the very first step of SMPng we should have gone through each and every non-static function in the kernel and inserted an explicit assert on Giant, and then subsequently removed them as we cleaned our way though the kernel. Lets remember that next time :-) -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 [EMAIL PROTECTED] | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence. To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-current" in the body of the message