NetBSD, recently incorporated as a non-profit, produced a 2003 report, where they detail some interesting work formalizing the support structure of a mostly volunteer project. I don’t recall if I mentioned it before, but the October-December 2003 FreeBSD Status Report came out a while back.
Month: February 2004
Better history
Aaron Malone submitted (and Hiten Pandya committed) a whole lot of man page changes to account for changes from FreeBSD to DragonFly in system name but not history. Specifically, the HISTORY sections. It’s not glamorous, but it’s good to do it.
Matt Dillon takes a spill
Matt Dillon will be coding a little more slowly for the next while – he broke his right clavicle while riding his bike, so his typing speed has been reduced, temporarily.
A BFD: bfe
Joerg Sonnenberger added a driver for the ‘bfe’ device, which is the Broadcom DCM4401 NIC.
The Plan for BSDCan
BSDCan is happening in Ottawa, Canada, May 13-16. Nothing DragonFly-specific planned there yet…
Packaging thoughts
Simon ‘corecode’ Schubert has posted his initial thoughts about a packaging system; discussion about is on the dragonfly.kernel mailing list/newsgroup. Simon wants to move fast – 1-2 weeks for suggestions, then some weeks for implementation planning, and then jump in!
Permamixer
If you now set mixer_enable="YES" in rc.conf, your mixer settings will get saved, thanks to ibotty’s idea and Joerg Sonnenberger’s commit.
(I’m writing this without trying it, but that’s how I read it…)
dfports report
Joerg Sonnenberger has done some major cleanup to dfports. A cvsup would be a good idea.
A quote from him follows:
“Hi all, next time you update your dfports tree, you must update
/usr/share/mk/bsd.port.mkand/usr/share/mk/bsd.dfport.mktoo. This should fix a lot of the problems various people mentioned in the past weeks. You should also check the dependencies e.g. of GTK+, if you haven’t rebuild your ports after January 25th. Otherwise the dependencies recorded are supposedly broken.”
All balled up
Andreas Hauser noted that he creates a tarball of the DragonFly source fresh on a daily basis, and puts it here: http://ftp.fortunaty.net/DragonFlyBSD/dcvs.tar.bz2
ACPI added
Matt Dillon has brought in the December 2003 release of ACPI (acpica-unix-20031203) from Intel. The old code is still what’s on by default, as the new code builds but does not yet work.
DragonFly BitTorrent available
Simon ‘corecode’ Schubert has added a BitTorrent file for downloading the latest ISO of DragonFly from his site.
Living dangerously
Peter Kadau answered a question from Jonathon McKitrick about getting rid of your boot manager, if you just have DragonFly:
boot0cfg -o noupdate -s 1 -t 0 -B ad0
Matt Dillon followed up on the topic mentioning that the ‘Dangerously Dedicated’ mode from the old FreeBSD installer is probably no longer worthwhile, and may even cause problems.
ATAng just in case
Matt Dillon posted that if the recent ATAng integration keeps your IDE controller from working (though the opposite is more common), do:
#define NO_ATANG in /usr/src/sys/dev/disk/ata/ata-all.h
Propolice at least
Tomaz Borstnar noted that propolice support is still there for GCC2 (the only compiler at the time it was added) but not yet for GCC3. Matt Dillon followed up saying that other ‘gcc3isms’ have to be cleaned up first, though integration shouldn’t be hard.
SATA support, sorta
Matt Dillon’s added experimental support for the Silicon Image 3512 SATA controller.
Incidentally, credit goes to David Rhodus for generating the base patch for all the ATAng work committed by Matt Dillon yesterday.
ATAng added
Matt Dillon has brought in ATAng from FreeBSD 4 except for “the dma chipset changes and the busdma changes”, while retaining the apparently better DragonFly MPIPE version.
Spamfilters on
Spam filters have been turned on for the various DragonFly lists: (Taken from Matt Dillon’s post explaining this)
- Matches against certain really annoying viruses
- With a MIME Content-Type header of text/html
- With a MIME Content-Type header of multipart/alternative
- Without a working reverse DNS lookup
- Without a FQDN formatted HELO line
- With an invalid envelope sender. The spam filter does a realtime
connect back to the SMTP server associated with the envelope sender
and attempts to RCPT to it. If this fails the mail will be rejected.
Greek to me
Xin Li pointed out a race condition in FreeBSD that exists in DragonFly too. Matt Dillon, on further inspection, found a deeper problem. I’m pasting his description here because he’s speaking another language – I don’t even recognize the acronyms he’s using.
Alan Cox responded with a link to the CMU Mach algorithm on this page as an example of a correct implementation.
More…
More DragonFly, less FreeBSD
Joerg Sonnenberger’s been going on a change rampage lately, adding “__DragonFly__” to a large number of files so that DragonFly-specific compilation can be done.
More gcc3 kernel building
Several more people have reported successful GENERIC kernel builds – and boots – using gcc3. I wonder how/if this changes performance?
NVIDIA binary driver, again
Emiel Kollof’s most recent changes (committed by Matt Dillon) to the NVIDIA binary driver are in.
buildworld and gcc3
Robert Garrett posted that using gcc3 (set your environment var CCVER to gcc3) to buildworld will now succeed.
Threading thread
There’s been a slight conversation about threading, where Jeroen Ruigrok van der Werven mentioned he would want hybrid, or M:N threading. Miguel Mendez chimed in that 1:1 threading, while not as spiffy, is easier to implement and Sten Spans posted a link to this PDF describing 1:1 threading in Linux. (I assume – haven’t read it yet) Matt Dillon brought up a larger issue: asynchronous syscall messaging support is needed before any of this thread work can be done.
NEWCARD committed
Joerg Sonnenberger has introduced NEWCARD, taken from FreeBSD 5 (mostly) in November 2002.
Updates updates
David Rhodus has updated OpenSSL to 0.9.7c, and Emiel Kollof (committed by Robert Garrett) brought in an override port for libusb, needed for software like SANE.
SIC-AT set
Hiten Pandya added support for “Allied Telesis SIC-AT” boards, merged from FreeBSD. A ‘SIC-AT’ appears to be a networking card from a Japanese company.
What’s a RCU?
Bill Huey (hui) pointed out that the “RCU” Matt Dillon has been talking about in his recent epiphany is “Read-Copy-Update”, mentioned on this page.
NEWCARD Next
Joerg Sonnenberger warned that his NEWCARD patch will go in Tuesday. Further driver work is needed, but nothing should break outright.
More mount
Joerg Sonnenberger committed a change to mount that allows you to specify mounting options when doing ‘mount -a. Chris Pressey put it together from FreeBSD code.
Token epiphany
Matt Dillon was answering a question from Bosko Milekic that caused him to have a realization on how to improve token-handling in both single and multiple CPU situations, with apparently significant performance benefits. I’m pasting his post to .kernel here:
“Not entirely. First, please note that the current token implementation does not work very well… it’s a mess to use because cpu #B can steal away cpu #A’s token by sending cpu #A an IPI message requesting the token. This means cpu #A has to be in a critical section to ‘protect’ the token, and must re-acquire the token (in case it was lost) after it blocks.
After thinking about this quite a bit I have come up with a solution that, in a moment of enlightment, would make our tokens operate like self-contained little RCU implementations (superior to Linux’s implementation, in fact!).
I intend to fix our tokens by not allowing an IPI to steal a token until the owning cpu has gone through a thread switch, or by explicit release. This means that, once fixed, our token implementation will allow us to abstract RCU-like operations, which I think is very important. It is not what I originally intended tokens to be but it is turning out to be what they should be.
The nice thing about the revamp I intend to do on the token code is that the RCU abstraction will wind up being a lot better then Linux’s RCU abstraction, because it will be compartmentalized. Only cpus competing for the same token are effected rather then all cpus in the system. We would not have the serialization problem that Linux has.”
SGML Site
Amar Takhar put together a generated-from-SGML version of the DragonFly website, with a few bonus features like a site map.
To Do Done
Hiten Pandya has completed the previously-mentioned To-Do list for contributors; an XML version is available if your browser can handle straight XML.
Firewire fixup
Joerg Sonnenberger committed a patch by Hidetoshi Shimokawa; this patch syncs DragonFly and FreeBSD 5 Firewire support
Roll call for roles
Hiten Pandya asked that anyone (committers or not) working on a task for DragonFly mail him the following data:
“(1) Name
(2) Owner (name and email address) — can be multiple
(3) Current status (work-in-progress, suspended, done)
(4) Description of the Task (300 chars is good!)
(5) Priority (if any) (If any)”
Send it to hmp@backplane.com with a subject of [TODO ITEM]. Will this show up online? I don’t know.
Beaver a go
Robert Garrett <rg70@sbcglobal.net> is working on the aforementioned OSL Beaver Challenge; if you are interested in participating for “Team DragonFly”, contact him
KDE 3.2 Kould work
KDE 3.2 is out. It should be possible to compile at least the base parts on DragonFly thanks to Dave Leimbach.
Beaver Challenge
Wouter Clarie posted about the OSU Beaver Lab Challenge, where the OSU Lab wants to benchmark a number of operating systems (Linux and BSD flavors) against each other, with teams for each operating system to tweak as needed. There’s no DragonFly team at this point, though it may not be useful to ‘compete’ before an inital release.
Everything GCC3 is new again
Matt Dillon is doing what he did with binutils-214 – He’s bringing in a prerelease version of gcc 3.3.3 to replace the FreeBSD 5 specific version of gcc 3.2 currently used. This version of gcc (and binutils) are straight from the vendor, which should mean staying in sync with new releases will be much easier.
Note: using gcc3 may/will lead to breakage right now…
AMD64 work
Matt Dillon commited a number of files for AMD64 support; it is far from complete at this point. These files come from Peter Wemm’s work on FreeBSD 5. However, he noted that the PMAP/MMU/VM support will be from scratch.
Quoted here is his comments on how that will be done:
More…
Source control system followup
As part of the discussion about CVS and similar products, Garance A Drosihn pointed out that he was working on a C++ version of cvsup, meaning that it wouldn’t require Modula-3 installed to build as it does now. He stopped work because these is apparently a C version in the works, which he hopes would be out by the time of FreeBSD 5.3′s release, somewhere in the next year. That’s good news for DragonFly, too, as cvsup is the method for code updates for the foreseeable future.
There was discussion some time ago of using rsync for updates, which is certainly possible… Binary updates would be nice, too.
Short subversion discussion
Pedro F. Giffuni brought up the idea of using subversion instead of cvs for storing DragonFly source. Bakul Shah pointed out that subversion was not yet mature enough for a switch from cvs in his experience, and Matt said we are continuing with cvs.
Hello, autoconf
Thanks to Jeroen Ruigrok, the version of autoconf now in CVS knows what a ‘DragonFly’ system is.
varsym and resident rc.d
Eirik Nygaard and Robert Garrett have added 2 new scripts to /etc/rc.d (they default to off):
resident: Any filenames/pathnames in /etc/resident.conf are made resident – i.e. dynamic programs listed here will load faster.
varsym: Any variable definitions in /etc/varsym.conf will turn into system wide varsyms.