Did you know Fred is the name for the DragonFly mascot? Well, you do now. He’s also back in the bootloader, thanks to Joe Talbott.
In an effort to support a new system with an AMD 880G chipset, Matthew Dillon has updated the AHCI driver. If you have SATA drives using AHCI, please test. (with any chipset, not just 880G.)
Two recent changes in the way virtual kernels are constructed should make a speed difference. The startup time is reduced (and more memory can be given to the vkernel), and the overall running speed should be quicker, too.
DragonFly’s version of pf (corresponding with OpenBSD’s 4.2 version) is now multiprocessor safe, to match the network stack. pf itself isn’t using multiple processors; it’s just able to work without causing problems in an otherwise MPSAFE environment, thanks again to Jan Lentfer. Note that there’s one minor caveat.
Swapoff has been added to DragonFly. This was a potential Summer of Code project, and also happened to have a bounty offered for it. $300 goes to Ilya Dryomov. If money for code like this interests you, check the Code Bounties page for more projects…
Dear universe: improved interrupt routing, or deduplication in HAMMER would make me happy. I’m not picky.
A little work has snowballed into even more of the network systems in DragonFly being pulled apart in order to get rid of the Giant Lock. It may delay the 2.8 release by a week or two, but it’s already paying dividends, such as NFSv3 now performing at maximum physically possible speeds on gigabit Ethernet.
(I ran out of alliterative words, sorry.) Venkatesh Srinivas has committed his work on memory allocation; his commit message has details. He’s kindly provided a link to the article that inspired the per-thread magazine work. He’s also provided graphs to show comparative performance benefits of his new memory allocator on DragonFly and on FreeBSD.
Jan Lentfer has now updated pf in DragonFly to version 4.2, on top of his earlier work to get to 4.1. This upgrade apparently doubles speed from 4.1, plus he’s brought in some other, later fixes. Thanks for doing a superhuman amount of work, Jan!
A familiar procedure in any open source project: irritation causes improvement. In this case, the Forth-based boot loader irritated Matthew Dillon into writing a new replacement C-based one. (See the commit too, and it may slightly affect the upgrade process for 2.7 users.)
All these recent locking changes seem to be adding up to a much more responsive system, incidentally.
Full buildworlds again, as there’s more commits that make it necessary. If you’re running 2.7, you should probably just plan on using buildworld, and not quickworld for rebuilding.
System data structures have changed again, so make sure your next rebuild is a full buildworld/buildkernel if you’re running 2.7. There’s been a lot of changes to pull more and more out from under the Giant Lock.
Thanks to the efforts of Venkatesh Srinivas, tmpfs file systems on DragonFly can now withstand fsstress testing. Thanks, Venkatesh!
(One of the benefits of posting about people’s work is that the names are fun to type.)
Matthew Dillon posted a summary of recent bugfixes in HAMMER and kqueue, which means if you are running a version of bleeding edge DragonFly build in the last few weeks, you should update.
He also mentions a “significant improvement in performance” in disk encryption. How significant? Over three times as fast.
Matthew Dillon sent an email to the kernel list detailing the performance improvements that he and Alex Hornung have recently made to dm_crypt and opencrypto. The disk encryption work does still come with a warning, however.
Matthew Dillon reports that DragonFly now has a catastrophic recovery tool for HAMMER filesystems, with pertinent details.
Matthew Dillon has provided some details about recent kernel work, along with a release forecast.
DSCHED_FQ was added to GENERIC, making it the default disk scheduling policy for master. You might want to refresh your memory of dsched and the fairq policy with some prior details and benchmarks.
Update: As Venkatesh Srinivas pointed out in the comments, adding DSCHED_FQ to GENERIC does not make it the default, but you no longer have to load the fairq module. Which raises the question, should fairq be the default?
The libevent library has been removed from the repository to ease the maintenance burden. There is some additional rationale in this tracker issue.