From owner-freebsd-current Mon Nov 25 13:33:52 2002 Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 94B6C37B401; Mon, 25 Nov 2002 13:33:51 -0800 (PST) Received: from critter.freebsd.dk (critter.freebsd.dk [212.242.86.163]) by mx1.FreeBSD.org (Postfix) with ESMTP id B4E3643EAA; Mon, 25 Nov 2002 13:33:50 -0800 (PST) (envelope-from phk@critter.freebsd.dk) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.12.6/8.12.6) with ESMTP id gAPLXX76076737; Mon, 25 Nov 2002 22:33:33 +0100 (CET) (envelope-from phk@critter.freebsd.dk) To: Andrew Gallatin Cc: Bosko Milekic , Julian Elischer , Robert Watson , Luigi Rizzo , current@FreeBSD.ORG Subject: Re: mbuf header bloat ? In-Reply-To: Your message of "Mon, 25 Nov 2002 16:20:39 EST." <15842.37927.919140.910293@grasshopper.cs.duke.edu> Date: Mon, 25 Nov 2002 22:33:33 +0100 Message-ID: <76736.1038260013@critter.freebsd.dk> From: Poul-Henning Kamp Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG In message <15842.37927.919140.910293@grasshopper.cs.duke.edu>, 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 phk@FreeBSD.ORG | 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 majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message