Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Mar 2001 08:29:19 -0500 (EST)
From:      Robert Watson <rwatson@FreeBSD.ORG>
To:        Jeroen Ruigrok/Asmodai <asmodai@wxs.nl>
Cc:        Luigi Rizzo <luigi@info.iet.unipi.it>, Josef Karthauser <joe@tao.org.uk>, Ian Dowse <iedowse@FreeBSD.ORG>, cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG
Subject:   Re: The Project and onward [was: Re: cvs commit: src/sys/netinet ip_output.c]
Message-ID:  <Pine.NEB.3.96L.1010312081521.44007A-100000@fledge.watson.org>
In-Reply-To: <20010312125534.B46529@daemon.ninth-circle.org>

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

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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1010312081521.44007A-100000>