Month: January 2004

Kinda like snapshots

Jeroen Ruigrok posted an interesting link about moving machine state between machine.

Posted by     Categories: Goings-on     0 Comments

News isn’t slow; I am

News reporting from me has been slow for the past few days and will still be slow; my house has an ice dam built up and my kitchen and basement are flooding every time the sun comes out. Argh!

Posted by     Categories: About This Site     1 Comment

AMD64 work starting

Matt Dillon’s planning to work on AMD64 support for February. He listed these steps:

“* build support and cross compilation work
* kernel build
* boot 64-bit kernel almost to single user
* 32 bit userland support
* boot kernel to single user
* basic device driver and filesystem testing
* boot kernel to multi user (fully working system at this point)
* everyone w/ 64 bit boxes start banging on it, fixing additional
device drivers, get 64 bit buildworlds working, and so forth.”

Posted by     Categories: Goings-on     0 Comments

Variant enlightenment

If you’re curious about variant symlinks, Chris Pressey submitted (and Matt Dillon committed) additional documentation to the ln man page that talks about variant symlinks in some detail.

Posted by     Categories: Committed Code     3 Comments

AMD 8111 Support

Joerg Sonnenberger has added AMD 8111 support in the ata driver.

Posted by     Categories: Committed Code     0 Comments

RCNG changes

Robert Garrett has removed all the FreeBSD/NetBSD references in the DragonFly boot code; cd /usr/src; make upgrade to upgrade to these newer versions.

Posted by     Categories: Committed Code     3 Comments

Systimer stuff

Matt Dillon’s been working on this patch, described as so:

“These are dyamic[sic] interrupt-driven timers. They replace the old fixed periodic ‘hardclock’ interrupt that exists now and allow per-cpu multiple periodic or one-shot timer interrupts to be registered with the system. Systimers operate outside the MP lock, so any code developed to use it has to be MP safe. Systimers are intended to be able to make use of per-cpu timers (e.g. LAPIC), when available, and will eventually be augmented to use them.”

It also has the added bonus of making nanosleep() very accurate.

Posted by     Categories: Goings-on     0 Comments

Torture test for gcc3

‘esmith’ reported successfully building OpenOffice 1.1 using the base version of GCC 3.3 now in.

Posted by     Categories: Goings-on     0 Comments

Log update

I’m using Movable Type for this page; I’ve updated it to version 2.661. This should have little visible effect for readers.

Posted by     Categories: About This Site     0 Comments

K&R canned

Joerg Sonnenberger committed Chris Pressey’s patches to replace some remaining K&R-style declarations with ANSI ones, in libkern.

Posted by     Categories: Committed Code     2 Comments

gcc 3 going on

Joerg Sonnenberger has added gcc 3.3 to the base system. You can set ‘CCVER=gcc3’ to use it, even to do a buildworld/buildkernel, though that is “not recommended”. Andreas Hauser already reported a successful build and boot doing it, though.

Posted by     Categories: Committed Code     0 Comments

Valgrind validated

Eirik Nygaard made a initial port of Valgrind to DragonFly, based on Doug Rabson’s FreeBSD work.

Posted by     Categories: Goings-on     2 Comments

xl expanded

Matt Dillon has made some changes to the xl driver that apparently solves a mysterious bug; I’m quoting from his changelog message below:

“Turn off hardware assisted transmit checksums by default. In buildworld loop tests this has been conclusively shown to corrupt transmit packets about one out of every million packets. The receive will not know the the packet is bad because hardware assist also apples the correct checksum to the corrupted packet. The result are random failures or corruption of network data in certain situations. On DragonFly, for some reason, doing a ‘resident /usr/bin/*’ seems to bring the problem out every few buildworlds with (primarily) mkdep’s cpp complaining about odd errors trying to open non-existant header files (during a header file search), such as EPROTONOSUPPORT. A tcpdump on both NFS client and server showed the client transmitting an access RPC and the server seeing a corrupted access RPC on its end, and then responding with EPROTONOSUPPORT. Other uncaught errors are also almost certainly occuring. mkdep is more likely to catch them because it actually checks the errno of a failed open() and does a huge number of open()’s (and as an NFS client this generates a huge amount of packet traffic).”

Posted by     Categories: Device support     0 Comments

nanosleep() on site

Paul Herman’s nanosleep() presentation is now on the DragonFly website.

Posted by     Categories: Goings-on     0 Comments

Debugging options

Matt Dillon noted that:

makeoptions DEBUG=-g
options DDB

are the only options you need when building with debugging options on.

Posted by     Categories: Goings-on     3 Comments

645DX fix

Jeroen Ruigrok commited code to recognize the SiS 645DX motherboard drive controllers (see prior mention as UDMA100 instead of UDMA33.

Posted by     Categories: Committed Code     0 Comments

Faster file descriptor allocation

Skip Ford ported Tim Robbins’ FreeBSD port of Niels Provos’ NetBSD file descriptor allocation code. Normally I don’t post about code until it gets committed, but he posted some numbers on how well it improves things, as benchmarked by Niels Provos’ test program that opens/closes files repeatedly. The numbers seem to indicate a 50% speedup:

File DescriptorsUnpatchedPatched

Posted by     Categories: Goings-on     1 Comment

Sound support superior

Thanks to Emiel Kollof (sorry I screwed up attribution!), AC97 support has been synced up with FreeBSD, plus support for the following devices has been added by Jeroen Ruigrok:

Diamond Technology Monster (DT0398)
Intersil (Harris) HMP9701
Integrated Technology Express (ITE) ITE2226E and ITE2646E
Texas Instruments TLC320AD90
Winbond W83971D
Asahi Kasei AK4544A and AK4545
Realtek ALC850
Wolfson WM9711L, WM9712L, and WM9709
Texas Instruments’ TLV320AIC27
Conexant SmartDAA HSD11246

Posted by     Categories: Committed Code     2 Comments

Resident Good

Matt Dillon is bringing in resident executable support. This speeds loading of dynamically linked programs by saving a copy of their vmspace with vmspace_fork() in the kernel, and using that when executed instead of going through the regular, slower startup. This will replace prebinding.

Matt Dillon posted these preliminary numbers running a test program with Perl:

dynamic:2.860u 2.668s 0:05.61 98.3% 87+231k 0+0io 0pf+0w
prebinding:1.821u 2.095s 0:03.90 100.2% 34+202k 0+0io 1pf+0w
resident:1.239u 1.846s 0:03.08 99.6% 137+280k 0+0io 0pf+0w
statically linked:0.418u 0.867s 0:01.28 99.2% 808+616k 0+0io 0pf+0w

It is planned to make dynamic loading as fast as static. For those of you not familiar with the output of time, the first column is total time taken, the second is time taken to run the tested program, and the third is time consumed by system overhead. Yes, there are more columns than that. No, I don’t know what they mean.

Posted by     Categories: Goings-on     2 Comments

CVS updated

Jeroen Ruigrok committed version 1.12.5 of CVS.

Posted by     Categories: Committed Code     0 Comments

A journaling journey

Discussion continues on journaling, soft updates, and background fsck. Jeroen van Gelderen linked to “Design Evolution of the EROS Single-Level Store” while talking about journaling meta-data, and Matt Dillon mentioned that he and David Rhodus are putting together a kernel API for journaling, so that some ambitious person can build it. Matt Dillon also pointed out he favors journaling because softupdates is a complex beast, and modern IDE drives are somewhat undependable when it comes to the way they lay down data. As an added bonus, Diego Calleja García linked to a description of reiser4 which talks about journaling, along with some freaky illustrations.

Posted by     Categories: Goings-on     0 Comments

Background fsck vs. journaling

Joerg Sonnenberger wrote up a proposal for background fsck, which he posted to the kernel discussion group. I”m pasting it wholesale.

(Matt Dillon has indicated he would prefer a journaling filesystem.)

Posted by     Categories: Goings-on     4 Comments


Matt Dillon noticed in a thread on the freebsd-hackers mailing list (see here for original post, and look for articles following that have [CHECKER] in the subject) that the M_NOWAIT command is being used incorrectly in a number of places, both in DragonFly and in FreeBSD.

I’m just pasting the rest of his post, as it’s not something that boils down easily:

Posted by     Categories: Goings-on     1 Comment

Plans and other plans

As part of a discussion about internationalization, Matt Dillon mentioned he plans to finish IPC this weekend as it would be a useful implementation method. He also mentioned offhand that the first release of DragonFly could be in June/July.

Posted by     Categories: Goings-on     9 Comments

Benches being marked

Jean-Marc Zucconi benchmarked FreeBSD 4.9-R, 5.1-R, 5.2-R and DragonFly on a multiprocessor system, and posted the large quantity of data this generated. It’s mashed into a table here:

(updated with better results for 5.2; ACPI was generating so many interrupts it was slowing his system.)

(see end of entry for his notes)

Posted by     Categories: Goings-on     1 Comment

645dx tricks

Bernhard Valenti found he had to put “set hw.ata.ata_dma=0” in the boot loader to get his 645DX-based motherboard ATA working. Jeroen Ketema also found that write caching had to be off: “set hw.ata.wc=0

Posted by     Categories: Goings-on     0 Comments

Make upgrade

Because of the GCC2/GCC3 work (which, incidentally, will allow other compilers like TenDRA to be used in system compilation), do a “make upgrade” after your next installworld. This will clean up now-stale compiler files, plus update files in rc.d and so on.

Posted by     Categories: Committed Code     0 Comments

I C I18N

Following up on recent discussion, ibotty listed ICU as another internationalization alternative.

Posted by     Categories: Goings-on     0 Comments

GCC integrated; updating abnegated

David Rhodus and Matt Dillon are getting GCC2 and GCC3 into the base system today; updating your source during the next 24 hours may bring you an unstable version.

Posted by     Categories: Heads Up!     0 Comments

Some links to look at

Ryan Dooley brought up The CITRUS Project as a way to assist internationalization in DragonFly.

According to this benchmark, linked to by Xin LI, there’s file descriptor allocation code in FreeBSD 5 that may be worth the effort to port.

Posted by     Categories: Goings-on     0 Comments

200 posts!

This is the 200th post here – neat! I’m averaging just under 1.5 posts per day, which is good: healthy posting, healthy project.

Posted by     Categories: About This Site     0 Comments

Benchmark setups

In a discussion about benchmarks, it was noted that /etc/malloc.conf changes can help benchmarks tremendously. Rahul Siddharthan suggested ‘/etc/malloc.conf -> H' and Jeremy Messenger suggested '/etc/malloc.conf -> aj

Also, Matt Dillon made a number of suggestions on what to check when benchmarking DragonFly vs. FreeBSD (4 or 5)

Matt Dillon quote follows:

Posted by     Categories: Goings-on     1 Comment

Prelinking reported

Simon ‘corecode’ Schubert pointed out prelinking should be mentioned on the 2003 report; here’s the text that will soon show up on that report:

Prelinking capability was added to DragonFly by Simon ‘corecode’ Schubert, which allows faster loading of applications that use a large number of dynamic libraries while running, like Qt/KDE. It is not currently hooked into the system or any port building process.

Posted by     Categories: Goings-on     0 Comments

ssh bug fixed

Matt Dillon fixed an apparently long-term problem in OpenSSH where a server can hang because it has a lot of data to send, but no immediate resources to do it with.

Reproduce it like so:
limit filesize 64k
ssh remotebox -n cat /usr/share/dict/words | cat > junkfile

Posted by     Categories: Committed Code     0 Comments

Ips = ServeRAID

The IBM ServeRAID controller is now supported, thanks to TONETANI Tomokazu. That would be the “ips” device.

Posted by     Categories: Committed Code     0 Comments

Jump on journaling

David Rhodus has the journaling filesystem code from Apple located in vfs_journal.c and vfs_journal.h. He estimate it’d take 2-3 (long) days of work to get it worked into the system, which would mean no more long fscks after unlcean shutdowns. Any takers? Everyone would love you for it.

Posted by     Categories: Goings-on     2 Comments

Idle hands do the daemon’s work

Eirik Nygaard was looking for something to do; Max Laier pointed out removal of #if defined(__FreeBSD__) / #if __FreeBSD_version > 5 would help, and Jeffrey Hsu indicated backporting the UFS2 size extensions would also be good.

I’ll quote my own followup to say there’s plenty of non-coding tasks available, too.

Posted by     Categories: Goings-on     0 Comments

Site updates

The main DragonFly website now has an additional mirror listed (bottom of page) for daily snapshots, and Matt Dillon’s put up slides from his talk at BAFUG in a new Docs section.

Posted by     Categories: Goings-on     0 Comments

OpenOffice OK

Port-fixing fiend Joerg Sonnenberger has committed a dfports override for OpenOffice.

Posted by     Categories: Goings-on     2 Comments

Paying off already

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.

Posted by     Categories: Committed Code     1 Comment

Data Size on Unix

In a discussion about a submitted firewall design, Jeroen Ruigrok listed Data Size Neutrality at

Posted by     Categories: Goings-on     0 Comments

KDE Korrected

Dave Leimbach has added changes to KDE in CVS to allow kdebase to compile on DragonFly. This is in the actual KDE source code, not a ports override.

Posted by     Categories: Goings-on     1 Comment

Card testing

Joerg Sonnenberger is looking for anyone with either PCCARD or CARDBUS hardware, for testing of this patch and this patch.

He noted, “After applying both patches remove bus/pccard and link bus/pcmcia to bus/pccard.”

Posted by     Categories: Goings-on     1 Comment

New FAQ in place

The website now contains a FAQ, which is mostly my fault.

Posted by     Categories: Goings-on     0 Comments

2003 Status Report posted

Inspired in part by the semi-regular status reports for FreeBSD, I put together (with help from a number of people, including Hiten Pandya and David Rhodus) a DragonFly status report for 2003.

Posted by     Categories: Goings-on     2 Comments

Archives amended

I’ve cleaned up my local archive of the DragonFly discussion groups so that start and end dates are correct; they are available at

Posted by     Categories: Goings-on     0 Comments

Matt Dillon speaking at BAFUG

For those of you around San Francisco, Matt Dillon’s talking about DragonFly at the next meeting of BAFUG (Bay Area FreeBSD Users Group), which is tonight, 7 PM, here

Posted by     Categories: Goings-on     0 Comments

Sleepy time

Paul Herman, Senior Researcher of the Kitchen Refrigerator, has a really nice writeup about time and clocks in operating systems (with graphs, even!), and work he wants to bring into DragonFly.

Posted by     Categories: Goings-on     0 Comments

Hostname, mixer, sound

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”.

Posted by     Categories: Committed Code     0 Comments

if_xname in

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.

Posted by     Categories: Committed Code     0 Comments

Booting Fun

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…

Posted by     Categories: Committed Code     1 Comment

pkgsrc pronounced passive

Michal Pasternak posted a plea for use of Pkgsrc to the submit discussion group. Given that he specifically said he wasn’t participating in that group and wasn’t going to do any work to make pkgsrc compatible, and that VFS is not yet complete, that’s probably as far as it will go. I’m editorializing.

Posted by     Categories: Goings-on     0 Comments

Lap relief

YONETANI Tomokazu reported his laptop was running very hot with DragonFly. The CPU was running when it didn’t need to be; Matt Dillon fixed this.

Posted by     Categories: Goings-on     0 Comments

Scheduler switch stuff

Peter Kadau has been talking about changing the userland scheduler (which could be done dynamically, as Matt Dillon pointed out) and a post out of that discussion by Matt Dillon does a nice job of summing up the differences between DragonFly and FreeBSD-5 process management.

Posted by     Categories: Goings-on     3 Comments

New-SB, clones

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.

Posted by     Categories: Committed Code     0 Comments

Lotsa ports

Joerg Sonnenberger has been adding a lot of port overrides – freetype2, xmms, etc. Always make sure to check dfports first when you want to add software.

Posted by     Categories: Goings-on     0 Comments