cvs-src summary for June 14-21

Mark Johnston mjohnston at
Mon Jun 21 21:47:47 GMT 2004

As I warned last week, I'm trying a new format for the discussion section, 
cribbing large chunks of text from the actual posts.  I'm not sure whether 
this is easier to follow or not; all the paraphrasing was starting to feel a 
bit goofy, but this might be a little too verbose, and I stand a better 
chance of accidentally misrepresenting people.  Anyway, please let me know if 
you love it or hate it.


FreeBSD cvs-src summary for 14/06/04 to 21/06/04
This is a regular weekly summary of FreeBSD's cutting-edge development.
It is intended to help the FreeBSD community keep up with the fast-paced
work going on in FreeBSD-CURRENT by distilling the deluge of data from
the CVS mailing list into a (hopefully) easy-to-read newsletter.  This
newsletter is marked up in reStructuredText_, so any odd punctuation
that you see is likely intended for the reST parser.

.. _reStructuredText:

You can get old summaries, and an HTML version of this one, at  Please send any comments to Mark Johnston
(mark at

For Lukasz Dudek and Szymon Roczniak's Polish translations of these
summaries, which may lag the English ones slightly, please see

.. contents::

New features
GNU Binutils updated to 2.15
David O'Brien (obrien) updated GNU Binutils, which includes libraries like
bfd (For low-level manipulation of binaries) and tools like gas (the GNU
assembler) and ld (the linker).

GDB updated to 6.1.1
Marcel Moolenaar (marcel) updated GDB, the GNU Debugger, to version 6.1.1.
The old version was 5.2.1, so this is a significant upgrade.

OpenBSD PF updated to 3.5
Max Laier (mlaier) updated PF, the OpenBSD packet filter, to version
3.5.  This new version adds atomic changes to rulesets, improvements to
interface handling, and more efficient storage of state table entries,
among other enhancements.  Max later imported a couple of extra fixes from
the OpenBSD stable branch.

SCSI passthrough support added to CISS
Scott Long (scottl) added support for SCSI passthrough to devices that are
on a CISS bus.  This allows CISS devices to be made available as normal
SCSI devices.  This work was sponsored by Tape Laboratories, Inc. and
helped out by Paul Saab (ps).

More network-related locking
Robert Watson (rwatson) again made a large number of commits adding
locking to various network-related subsystems.


Intel PRO/10GbE driver MFC'ed
Tony Ackerman (tackerman) merged the ixgb driver, for Intel PRO/10GbE 10
gigabit Ethernet cards, to 4.x.  The driver was introduced to -CURRENT at
the end of May.

ipfw lookup tables MFC'ed
Ruslan Ermilov (ru) merged to 4.x the code he committed last week, adding
lookup table support to ipfw.  Please see `last week's summary`_ for
more details on the lookup table code.

.. _`last week's summary`:

Notable changes
Semaphore changes require recompile of modules
John Polstra (jdp) made some changes to the semamphore code, making the
error reporting more flexible.  These changes mean that the ips module,
and any third-party modules calling sema_timedwait, must be recompiled.

dev_t type changed to struct cdev \*, udev_t changed to dev_t
Poul-Henning Kamp (phk) made a giant commit to change mentions of "dev_t"
to "struct cdev \*" within the kernel, then replacing "udev_t" with
"dev_t".  This change resolves the confusing situation of the "dev_t" type
being an integer in userland, but a pointer to a structure (struct cdev \*)
in the kernel code, with "udev_t" representing the userland-style integer
dev_t in the kernel.  Now dev_t is an integer in both places, with no
special name for the struct cdev pointer used for devices in the kernel.

Discussion topics
User-visible changes to -STABLE
Max Khon (fjoe) added display of sfbufs (sendfile buffers) to netstat -m,
which normally displays mbufs (memory buffers), in 4.x.

Alfred Perlstein (alfred) responded that "MFC'ing a change to netstat -m's
output is not acceptable", and asked Max to "back out the netstat change."

Max responded "No problems, but can you tell me which scripts or programs
has become broken after this change?"

Ken Smith (kensmith) replied "The scripts that are now potentially broken
don't necessarily need to be in the base system," clarifying, "Once a
branch goes into -STABLE status we try to not make 'user-visible' changes
to it unless they are bugfixes or do not alter the way something had

Max responded, saying that since the script only adds lines to the output,
"Frankly speaking I can't imagine a script that could correctly parse
netstat -m output before, but now is broken."

Alfred answered "Then you don't understand the idea of 'compatibility' and
should not be committing to releng4.  Ever."

Ken also replied, offering an example of student programmers: "[I]n cases
where the user is interested in 'most of' the output of something they
will often take the approach of removing things they don't want instead of
selecting things they do want."

Mike Silbersack (silby) joined the discussion, saying "sfbufs are used
almost exclusively in conjunction with mbufs, and users who are interested
in mbuf usage will certainly be interested in sfbuf usage."  He also
replied to the script concern, saying "I understand the script breakage
argument, but I don't think it's particularly potent. [...] [t]here was NO
previous way to see sfbuf statistics; we're adding new _and_ relevant data
to 'netstat -m'."

Alfred disagreed, "You are cluttering useful stats on the system with
something that users don't need to see.  The data is not relevant.  You
are breaking the expected output from the tool."

Ken did too, saying, "This is where we disagree and I don't think either
of us will change our minds.  My take on it is that this breaks an API in
a -stable branch and is adding new functionality so it *should* be added
as a new flag."

Mike replied, "My opinion is based on the fact that software in contrib/
and in ports/ can change greatly from version to version", giving examples of
bind, sendmail, openssh, binutils, gcc, tar, tcpdump, and some local utilities
converted from Perl to C.

M. Warner Losh (imp) answered, "Something else changed, therefore all
change is fair game is not logical.  You are arguing to be right, rather
than arguing for what's right for the project."

Scott Long (scottl) followed up to Warner's post, elaborating "Stability
in 4-STABLE has been pretty fast and loose over the years. [...] I plan to
start enforcing kernel and userland API and ABI stability once 5-STABLE

Max later backed out the commit.

Important bug fixes
Various ATA improvements
Soeren Schmidt (sos) committed a number of improvements and bugfixes to
the ATA code, which should result in generally better compatibility.  For
instance, David Xu (davidxu) reports that the changes fixed a problem on
his Tyan 2507T motherboard with a VIA686B south bridge.

contigmalloc improvements
Brian Feldman (green) improved contigmalloc, which is used by drivers
to allocate contiguous pieces of memory, to be more reliable.  The old
code had a race condition that resulted in deadlocks when connecting new
hardware to a heavily loaded system.

frstor panic vulnerability on older machines fixed
Bruce Evans (bde) fixed a bug that allowed users to crash the system by
using the recently-discovered `Linux crash exploit`_.  This vulnerability
existed only in 5.x, and only on machines without SSE support (Pentium II
and earlier.)  The issue was reported by Florian Klemenz in `PR 68058`_.

.. _`Linux crash exploit`:
.. _`PR 68058`:

Other bug fixes
Bruce M. Simpson (bms) fixed talk, used for text-based communication
between users, so that it will work when the talkd server is bound to the
local loopback address.

Brian Somers (brian) fixed tftpd, the TFTP server, to work with
pxelinux.bin from the syslinux package.  This was accomplished by
eliminating excess slashes and dots in filenames.

Diomidis Spinellis (dds) merged an enhancement to the PPP code that
reduces per-packet overhead by 38%.

Paul Saab (ps) fixed a bug in the CISS SCSI driver that resulted in a
panic when removing a disk from a RAID 0 volume.  The fix was also MFC'ed.

Robert Drehmel (robert) fixed a bug that caused the pw utility not to
update all values given to it when the -d option, to specify a home
directory, was given and was the same as the old value.  The bug was
spotted by Richard Caley.

David O'Brien merged a patch from the FSF to GCC, fixing bad code
generation when building Firefox on amd64.

More information about the freebsd-current mailing list