David Rhodus imported Hyperthreading changes from FreeBSD which allow you to automatically use Hyperthreading on supported CPUs with just the regular multiprocessor options turned on in your kernel; e.g.
options SMP, options APIC_IO.
However, the DragonFly version has no idling loops in it to reduce CPU resource contention. Because of the way DragonFly schedules per-CPU/sends IPI messages, there’s no performance issue caused by multiple CPUS HLTing. Already, a benefit.
A bunch of changes came in:
hostname now takes a -r option that will set the hostname based on reverse lookup of an IP address, or -i which does the same using the computer’s primary IP. It also works on IPv4 or IPv6. This very good idea comes from Kent Ibbetson.
mixer has had FreeBSD-5 changes added in. It now can take relative volume changes, thanks to Craig Dooley.
Jeroen Ruigrok added in support for the SoundBlaster Audigy and Audigy 2, apparently sourced from “patches by Orlando Bassotto, which were taken from the ALSA Project and the SoundBlaster OSS repository”.
Max Laier’s if_xname patches have been commited; If I recall correctly, this allows for some different ways to refer to existing network interfaces. Here’s the original post.
Aaron Malone created a patch for
src/sys/boot/forth/beastie.4th (now committed) that replaces the ‘beastie’ boot with a dragonfly. He’s working on a dragonfly ASCII console screen saver, too. Now we just need a graphical one too…
The USB system from FreeBSD-5 has been brought in wholesale. Matt Dillon reports his camera, hard drive, mouse, and memory key all working and un/repluggable.
Also, the network interface cloning API from FreeBSD-5 has been brought in, from work by Max Laier and David Rhodus.
David Rhodus added the pst driver to the GENERIC kernel, so if you are trying to install to a machine using a Promise card as disk controller (for RAID, I assume), it oughta work.
Sendmail 8.12.10 and BIND 8.3.7-REL are in, thanks to David Rhodus.
The kernel option USER_LDT is now on by default, as it’s useful for ports like Wine, or mplayer, and will be needed for threading. Suggested by Craig Dooley.
The Marvell Yukon chipset now supports multicast. A small thing, but I’m hurting for news.
Matt Dillon’s updated RCNG in a big way. You can now check the status of, or start, stop, etc. different system services using appropriate single commands like
rcrestart, and so on.
varsym -sa will list service status.
The old way had you looking for the appropriate file in
/etc/rc.d and issing commands for it, and having to poke throught
ps -ax or
/var/run/ to see what’s going.
To get this running, do
make upgrade_etc in
/usr/src/etc, or a regular build/installworld. Also, install
/usr/src/sbin/rcrun, and reboot.
Jeffrey Hsu has added a rather complex patch for
sendfile(2); I’m going to link to the changelog rather than sum up.
Ryan Dooley’s patch giving stack-smashing protection in libc is in. It’s not on by default. It adds some overhead but little binary size when turned on.
Craig Dooley submitted a patch to add a number of improvements to agp, from FreeBSD5.
Code to add the lnc and vx network drivers from FreeBSD-5 is in, put together by Joerg Sonnenberger. This is part of the PCI compat cleanup, though these just-added drivers just use newbus.
Libcaps, the library for userland threading, has been updated. Work is still proceeding on fp stave/restore, and some other tasks, including Galen Sampson’s work. Matt Dillon’s commit message sums it up as neatly as possible, so I’ll just paste it:
Major update to libcaps. Implement support for virtual cpus using
rfork_thread() and implement IPIs, per-virtual-cpu globaldata areas,
and per-virtual-cpu LWKT scheduling.
Galen Sampson and Matt Dillon have committed the first stage of the userland threading – globaldata structure and thread primitives are connected, and libcaps can lock in a fashion similar to the existing kernel locks.
/usr/src/nrelease has the ability to build the new ‘live’ CD iso images. Listed here is what Matt Dillon listed as possible make targets in that directory:
“release: This will do a full buildworld and buildkernel (GENERIC)
with the current source tree, then generate the release
ISO and directory structure in /usr/release.
quickrel: This will do a ‘quick’ buildworld and buildkernel (i.e.
-DNOCLEAN) and then generate the release ISO and directory
structure in /usr/release.
realquickrel: This is even faster. It assumes that the buildkernel and
buildworld have already been done and just generates the ISO
directory structure and ISO file in /usr/release.”
David Rhodus has checked in a new version of BIND, which may correct the recently discovered possible DoS. (commit notes don’t specify.)
Matt Dillon has added in a new ‘libcaps’ library, mostly for experimentation, which appears to be the base for userland threading.
Continue reading “libcaps in”
Matt Dillon added an “upcall mechanism to support userland LWKT”. You can look at the man page for upc_register in source.