I always attributed speed issues to writing transaction history, but: Matthew Dillon discovered HAMMER was repeating itself when writing to disk. Fixing that issue doubled write speed. This fix is in 4.6 and the upcoming release.
The longstanding practice is to load kernel modules in loader.conf, as early as possible. That’s good, for anything that needs them.
However, that also can be bad. Your machine can be unbootable if there’s a problem with a module or loader.conf is messed up, since that file is read long before the startup process finishes. Enter the new alternative: modules can be loaded in rc.conf, and the only loader.conf modules needed are those required by / to mount.
Matthew Dillon has been doing a significant amount of work on cache lines, and I haven’t been linking to it because it’s hard to point at single commits with such a technical subject. However, he’s summarized it all, along with news on NUMA handling and vkernel improvements.
Rimvydas Jasinskas posted an extended description of what’s happening with dports. There’s a significant xorg reformatting coming in ports, which is going to be absorbed into dports, but it may take some time. There’s also an odd loss of commit rights for John Marino, who commits (frequently!) to both DragonFly and FreeBSD. (His followup) This all translates to some upcoming transition time for dports to accommodate these changes.
Note that if you are using dports binaries, especially on DragonFly 4.6 release, this won’t really affect you; the way dports is set up, binary sets always work. It is interesting to hear about future work, in any case.
The ncv(4), nsp(4), and stg(4) drivers are now removed from DragonFly. So is the portal file system. Also, though not a removal, vm.swapcache.use_chflags now defaults to 0. Does this affect you? Almost certainly not! I feel compelled to point it out, though, just in case there’s that one person who didn’t want a surprise.
If you are on DragonFly -master, now is a good time to update. Matthew Dillon has been changing how DragonFly handles locking and memory use, with differences in the vmstat structure and page coloring, some memory settings, and many other locking changes. I am only linking to a few examples. If you don’t want to dig through those links for performance numbers, he summarized his changes and their effects in a post to users@.
If you were running DragonFly 4.7, for a short period you may have had trouble with shutting down, because of an ACPI bug. It’s fixed now. It’s actually been fixed for two weeks, but I’m going back and clearing things I hadn’t had a chance to post, since we are in the Christmas-New Years lull time.
Don’t get too excited yet – clang import hasn’t happened. However, I want to draw attention to Rimvydas Jasinskas’ changes to alternate compiler handling, which would be for importing clang. His commit message goes into some of the rather thorny problems of transitioning between compilers and releases.
I mention this because people don’t realize there’s a console screensaver: ‘vidcontrol -t XX’ will blank the console after XX seconds of inactivity. This way you aren’t lighting up your server closet with a terminal screen, forever.
This is a minor thing, but I bet someone will find it useful: Chromium in dports has been patched to remove the forced dependency on dbus, which will be useful to anyone using DragonFly and a ‘lighter’ window manager. You still need to specify this preference in your make.conf to have it happen.
The 2.25 version was and still is installed by default. If you want to try out 2.27 instead, WORLD_BINUTILSVER=binutils227 is what you need. I didn’t test that, of course. The binutils changelog will tell you what’s different in 2.27.
UEFI, which I casually sum up as the replacement for BIOS, has been seeing some support in DragonFly, but not within the installer. Matthew Dillon and Sascha Wildner has ported over FreeBSD’s EFI ABI support, which I think means support for various EFI applications and features. I haven’t booted a machine using UEFI in any significant way, so I don’t have a good explanation – but I am sure this is useful for people with new hardware.
Update: some explanation plus a note that it’s experimental and you could brick your machine.