Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Feb 2005 15:21:57 +0000 (GMT)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        ALeine <aleine@austrosearch.net>
Cc:        freebsd-current@freebsd.org
Subject:   Re: FW: Call for comments: CoxR, a CVS/mail-lists/BTS 
Message-ID:  <Pine.NEB.3.96L.1050207145002.61595I-100000@fledge.watson.org>
In-Reply-To: <200502061806.j16I64bE037040@marlena.vvi.at>

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

On Sun, 6 Feb 2005, ALeine wrote:

> Oh come, FreeBSD 5.x does have a mutex hell going on, but to say it has
> so many bugs as to require a truck is absurd. :-> A smaller lorry
> perhaps, but a truck - definitely not. :-) It might also be a good idea
> to use an automated spell-check on your pages, I've noticed a number of
> typos such as "divelopers" and similar. 

I appreciate that not everyone is a fan of mutex synchronization, but
"mutex hell" is a bit of an odd description: most bugs I see getting
reported (and fixed) aren't even locking-related.  They're generally a
property of lack of testing exposure for more obscure features or edge
cases that are hard to test for without a wide testing base, such as
edge-case hardware, bugs associated with longer run times, or a recently
introduced feature, etc. Generally speaking, in the last week, I saw a
couple of classes of bug fix fly by in commits, in order of frequency of
occurence: 

- Minor device driver bugs involving alignment, feature mapping for device
  IDs, attach/detach bugs, error handling, etc.  In one case, the bug was
  that a device driver was able to run MPSAFE, but the flag was set
  incorrectly to not let it.  As usual, a moderate amount of change in
  ACPI.  This was the vast majority of bug fixes.

- Network stack logical errors or C-related errors: generally, doing
  something wrong with mbufs or routing.  Mostly "syntax" and not
  "semantics", although a couple of netflow bugs that were more serious
  and the result of more broad exposure since its commit (last month?).

- Scheduling related bugs in ULE -- Jeff MFC'd a number of fixes to
  RELENG_5 for the first time in several months, so there was some
  backlog, but I think it's not unusual to see a trickle of scheduling
  related changes, so isn't entirely unrepresentative.

- VFS/file system bugs -- a couple were locking related as a result of
  Jeff's on-going work to get Giant off of the file system code, but more
  were associated with on-going buffer cache work by Poul-Henning.

While I haven't made any attempt to determine if the last week is
"typical" of long term bug fixes, it was easily on-hand, and the results
are suggestive.  Locking, as with other complex changes in the OS, comes
with bugs, but it's hardly "hell" :-).  One of the nice things about the
locking approach to synchronization is that it comes with a strong
assertion model: this means you can often find bugs without actually
triggering the symptoms of the bugs, which may be difficult to trigger or
very sensitive to timing.  So when there are locking bug fixes, there more
often found through a WITNESS warning than an exercised bug.  When I do
complex application pthreads programming, I often wish it had the
threading/locking debugging facilities the FreeBSD kernel has :-).

Robert N M Watson




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