Quality of FreeBSD
Robert Watson
rwatson at FreeBSD.org
Thu Jul 21 14:17:14 GMT 2005
On Thu, 21 Jul 2005, MikeM wrote:
> Thank you for the clear answer. For the record, I am very pleased with
> the overall quality of FreeBSD, my comments were only meant in the sense
> of "everything has room for improvement", even something as excellent as
> FreeBSD.
I think everyone agrees there's room for improvement -- many FreeBSD
developers come to work on FreeBSD because they are enjoy writing software
and are dissatisfied with what they find in the commercial world.
However, I've found most problems in the FreeBSD development process stem
from a lack of resources to implement the best processes, rather than
processes being wrong "by design". I.e., there being a strong interest in
producing tested code, but inadequate resources to provide the thorough
testing we'd like. Or, the best of intentions (a company agrees to
support development of a feature, starts work, and then goes out of
business) preventing follow-through. As has already been mentioned we're
intentionally going for a much less agressive 6.x feature set in order to
refine some of the hard architectural work in 5.x, and to avoid
over-committing resources. One of the biggest problems with the SMP work
in 5.x was the dot.com crash: companies that had committed resources to
manage and develop on the project ceased to be available.
> I snipped out one section of your reply because it illustrates a main
> point of my message.
>
> While it is good to have the testing in place to catch race conditions,
> has anyone done a post mortem to determine why and/or how the race
> conditions got into the code in the first place? *Someone* coded that
> race condition. Was it that two developers were using the same data
> structure without one knowing about the other? If so, then there's a
> problem that needs to be fixed. Chances are, though, that wasn't the
> problem. Only the developers would be able to look at the development
> process and determine why the process allowed a race condition to occur
> in the code. But if they took the time to do this, then the knowledge
> gained would be useful across a wide swath of FreeBSD development.
There's some information, FYI, on the netperf cluster:
http://www.freebsd.org/projects/netperf/cluster.html
It needs a bit more updating for recent hardware additions, courtesy
Sentex.
With respect to the network stack changes -- yes. And in some cases, the
areas of problems were actually marked with comments indicating they were
known, but not easily resolvable (or not thought to be bugs that were
exercised in practice). In other cases, they were due to the
mis-understanding of code in the stack, or the fact that data structures
or code were not originally designed with parallelism in mind, and the
communal discovery of unexpected or undocumented complexity. A
significant part of 5.x and 6.x work has been fixing existing
architectural problems present for decades, but that suddenly become more
relevant as the kernel supports SMP and threading better.
In several cases, they were bugs already present in FreeBSD 4.x, but only
exercisable under extremely high memory load. Something you'll find in
later 5.x versions is a much greater use of locking assertions than in
earlier versions.
> Thank you for your offer of allowing me to contribute to the FreeBSD
> project, however I have professional obligations that prevent me from
> making the necessary commitment to the project. For the most part I
> just lurk here, popping my head up on occasion. In doing so, it is not
> my intent to to snipe at anyone or carp at anything. As such, I'll let
> this sub-thread die out at this point....
If only the realities of paid work didn't intervene so frequently --
sadly, I'm only too familiar with that problem :-).
Robert N M Watson
More information about the freebsd-stable
mailing list