From owner-cvs-all Mon Mar 12 5:31:37 2001 Delivered-To: cvs-all@freebsd.org Received: from fledge.watson.org (fledge.watson.org [204.156.12.50]) by hub.freebsd.org (Postfix) with ESMTP id 7906A37B719; Mon, 12 Mar 2001 05:31:30 -0800 (PST) (envelope-from robert@fledge.watson.org) Received: from fledge.watson.org (robert@fledge.pr.watson.org [192.0.2.3]) by fledge.watson.org (8.11.1/8.11.1) with SMTP id f2CDTJh44146; Mon, 12 Mar 2001 08:29:20 -0500 (EST) (envelope-from robert@fledge.watson.org) Date: Mon, 12 Mar 2001 08:29:19 -0500 (EST) From: Robert Watson X-Sender: robert@fledge.watson.org To: Jeroen Ruigrok/Asmodai Cc: Luigi Rizzo , Josef Karthauser , Ian Dowse , cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG Subject: Re: The Project and onward [was: Re: cvs commit: src/sys/netinet ip_output.c] In-Reply-To: <20010312125534.B46529@daemon.ninth-circle.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Mon, 12 Mar 2001, Jeroen Ruigrok/Asmodai wrote: > We have one problem, although John Baldwin et al. have worked very hard > on providing a lot of documentation for the current system under which > FreeBSD works I see a distinct number of kernel hackers not being able > to keep up with the recent changes. In fairness to John, I think you under-emphasize this point -- as new kernel APIs have been introduced in SMPng, they have been rigorously documented, and as API updates have occurred, the documentation has been updated in a timely and consistent manner. In addition, John has taken the time to document a number of other internal kernel interfaces, such as the scheduler, which were previously undocumented, as part of his work. One of the things I've encouraged Jason to do, and will now continue to encourage others on SMPng to do, is send routine updates to freebsd-hackers about their work, which will help keep developers up-to-date on the process. It's a hard process, but it's actually quite well laid out if you look at the SMPng web page, and of course, the Solaris Internals book :-). At some point in the future, we'll need a set of guidelines on threaded kernel programming, but that has been hard to do until now because sx locks were only recently imported. There will need to be an extensive kernel developer education process for SMPng, but you can't do most of the education until the primitives are in place, and designing the optimal primitives has required an almost complete understanding of the kernel by SMPng developers. I'd argue that SMPng has actually dramatically increased the number of developers with an in-depth understanding of the kernel as a whole, rather than decreasing it, by virtue of forcing John and others to try to improve the synchronization abstractions. In fact, it's probably the case that we'll lose a number of kernel developers during the SMPng process simply because SMPng requires you to think through what it is your writing in a far more rigorous way: synchronization is no longer a "one size fits all" SPL approach that encourages sloppiness. In my view, the changes underlying SMPng are sufficient that we could easily call FreeBSD 5.0 "FreeBSDNG" instead. If the KSE changes were going to make it into 5.0 instead of 6.0, I'd almost certainly insist on it :-). But just because the changes are big doesn't mean it falls into the historical habit of poor kernel documentation. I can't accurately comment on the documentation of newbus and related past features other than to say that I have trouble finding it. However, this has always been the case: try to find decent documentation on the current VFS and the VM system, for example. SMPng is far from an "example" of our bad documentation; instead it's a stellar "example" of an improvement in the process, and a credit to the developers working on the project. Robert N M Watson FreeBSD Core Team, TrustedBSD Project robert@fledge.watson.org NAI Labs, Safeport Network Services To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message