cvs-src summary for April 11, 2004

Mark Johnston mjohnston at
Mon Apr 12 20:00:05 PDT 2004

Sorry this was delayed.  Wilko, I'll spare you the detailed explanation of 
exactly why I wasn't especially hungry for easter eggs.  :)

FreeBSD cvs-src summary for 04/04/04 to 11/04/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::

Last week, I claimed that Maxime Henrion (mux) had imported_ the Ezm3
Modula-3 compiler.  A few people e-mailed me to point out that he had,
in fact, not; that was actually an April Fool's joke.  I hope some other
people were fooled too. :)

I also mentioned_ that Roman Kurakin (rik) MFC'ed the driver for Cronyx
Sigma WAN adapters, claiming that the cards were used for T1, T3, and
other WAN interfaces.  Roman explained that the Cronyx Sigma card is a
low-end ISA adapter, running up to 384 kilobit per second, and so it is
too slow for a T1.  The other cards are the Cronyx Tau, which supports E1,
among other interfaces, and the Cronyx Tau-PCI, which supports T3, E3, and
others.  The Cronyx Tau driver was MFC'ed this week, as mentioned below.

.. _imported:
.. _mentioned:
.. _below: 

New features
Major PCI changes
M. Warner Losh (imp) committed a major update to the PCI code, especially
in the area of power management.  The updated code powers up and powers
down PCI devices as appropriate, rather than leaving it to the device
driver.  These changes should improve support for suspending and resuming,
and simplify device drivers, but they need strenuous testing; please test
the code and notify Warner if you run into bugs in it.

Initial Bluetooth human interface device support
Maksim Yevmenkin (emax) committed the first parts of support for Bluetooth
HIDs (human interface devices - mice, keyboards, and the like).  So far,
the bthidcontrol and bthidd programs have been added.  Kernel support and
documentation will follow.

Specialix I/O8+ and I/O4+ serial controller support
M. Warner Losh (imp) committed the sx driver, written by Frank Mayhar,
for older Specialix I/O8+ and I/O4+ serial controllers.  This hardware is
unrelated to the Specialix SI/XIO and SX cards supported by the si driver.

Polling support for Via Rhine Ethernet driver
Ruslan Ermilov (ru) committed an update for the vr Via Rhine Ethernet
driver which fixed a bug, cleaned up some code, and added support for
`device polling`_.  Polling allows the kernel to poll network devices for
data rather than having them generate interrupts all the time, lowering
system load when network traffic is heavy.

.. _`device polling`:

Per-interface polling control
Ruslan Ermilov (ru) updated all the interfaces with polling support
so that polling can be controlled on an individual interface level.
Interface polling can be turned off and on with the /polling/ parameter to

tar and libarchive improvements
Tim Kientzle (kientzle) reworked ACL support in libarchive, a library for
reading and writing archive formats, making it compatible with the star_
archiver's ACL handling.  He also introduced bsdtar, a new tar archiver using
libarchive, and performed some other libarchive cleanups.

.. _star:

libarchive pt 2:

Cronyx Tau driver MFC'ed
Roman Kurakin merged the Cronyx Tau driver to 4.x.  The Tau is an ISA card
supporting E1 WAN connections and RS-232 or RS-530.

Notable changes
4.x frozen for 4.10 release
Scott Long (scottl) announced that the -STABLE branch (RELENG_4) is frozen
in preparation for 4.10 to be released.  Any commits to RELENG_4 must be
approved by the re team.

Advertising clause removed from licenses
M. Warner Losh (imp) and Mark Murray (markm) made a sweeping removal of
the advertising clause, as approved_ by UC Berkeley, from many files with
a UC Berkeley copyright.  If there are BSD-licensed files in FreeBSD
with your personal or business copyright on them, and you're willing to
eliminate the advertising clause from those, please get in touch with
Warner or core.

.. _approved:

(many commits)

getvfsent API removed
Maxime Henrion (mux) removed the getvfsent API, since it has been replaced
by getvfsbyname() and the vfs.conflist sysctl.  All of the programs that
use the old API have already been updated.

/dev/umodem phased out in 4.x
Shunsuke Akiyama (akiyama) removed the MAKEDEV code to make /dev/umodem*
devices, since /dev/ucom* has replaced them.

Discussion topics
Option ordering in bsdtar
Tim Kientzle (kientzle) modified pkg_install to call tar with the x
option first.  Andrey Chernov (ache) suggested that bsdtar should accept
options in any order, rather than changing pkg_install to put x first.
Tim responded that requiring the mode first improves error reporting,
complies with the SUSv2_ specification, and improves compatibility when
getopt_long is not available.  Mike Silbersack (silby), Stijn Hoop, and
Roman Kurakin (rik) responded, saying that each had his own accustomed
order and changing it would be traumatic.  Tim agreed to make bsdtar more
forgiving in its option ordering, and did so.

.. _SUSv2:

bsdtar made forgiving:

How random is random enough?
Those not concerned about the hairy details of cryptographic-quality
randomness may find this entry a long slog, with no tidy conclusion at the
end; don't feel bad about skipping over it.

Mark Murray (markm) modified the entropy device code to use
hardware entropy sources, when available, instead of the Yarrow_
pseudo-random-number generator (PRNG).  This spurred a huge thread about
the relative security of different pseudo-random-number generators.
Nate Lawson (njl) began by saying that the change was a huge mistake
and a security regression, referring Mark to a `white paper`_ on the
Via Nehemiah random-number generator, which suggests that the output
from the chip's be put through Yarrow.  Mark responded that the output
of the on-chip RNG is OK, and Yarrow would be overkill.  Colin Percival
(cperciva) suggested a rc.conf variable to toggle use of Yarrow; Mark
responded that he didn't want to introduce that complication.

In a subthread, Bruce M. Simpson (bms) asked whether Mark had any
independent tests of the VIA RNG.  Mark responded that the white paper
mentioned above gave the chip a very good rating, and if whitening
(further randomizing) of the random data is needed, it could be provided
by a small hash function instead of the heavyweight Yarrow.  Poul-Henning
Kamp (phk) suggested having randomness available in different levels,
which spawned some threads about the different levels of randomness and
their uses.  Richard Coleman asked what hash function Mark had in mind,
pointing out that AES (as used in FreeBSD's Yarrow implementation) is
already one of the faster ciphers.  Mark suggested using the chip's
integrated AES; Nate asked whether designing a duplicate of Yarrow with
only one entropy source would make a good PRNG.

In another subthread, Sam Leffler (sam) agreed with Nate that hardware
entropy sources should not be trusted without post-processing.  Mark
responded that he'd look into low-overhead post-processing, to which Nate
followed up, asking why he wanted a separate PRNG instead of using Yarrow.
Mark explained that Yarrow accumulates random bits and generates random
numbers separately, making it good for low-entropy environments, but not
for whitening high-entropy random data.

.. _Yarrow:
.. _`white paper`:

Committer changes
Bruce M. Simpson (bms) introduced Daniel Hartmeier (dhartmei) as a new src
committer.  Daniel is the original author of OpenBSD's pf_ packet filter,
which has also been imported into FreeBSD.  He will be helping with the
maintenance of pf in FreeBSD.  Bruce and Max Laier will be Daniel's

.. _pf:

Important bug fixes
KVM mouse support improved
Mark Murray (markm) modified the debugging output of the PS/2 mouse
support code to be less verbose by default, which corrects a problem with
some KVM switches.  The symptom of the problem was that the mouse would
jump all over the screen and click randomly when switching consoles.

Other bug fixes
John Baldwin (jhb) fixed the filesystem code to avoid a panic during
installation that had appeared recently.

More information about the freebsd-current mailing list