Sepherosa Ziehau is continually trying to squeeze more network performance into DragonFly. I’m not always so good at pointing it out, but here’s several commits from him that improve performance on several chipsets.
Markus Pfieffer has committed Larisa Grigore’s Google Summer of Code work, “SysV IPC in userspace”. It’s been a bit since the event finished, but it’s in DragonFly now.
Franco Fitchner has updated mdocml in DragonFly to 1.12.3. The changelog is right on the front page of the vendor site.
Update: Undeadly has a nice summary of the changes.
Matthew Dillon wrote a roundup post summarizing all the changes he’s made to DragonFly to improve SMP performance in the last few weeks. He’s removed almost all contention from DragonFly. This means better performance, scaling upward depending on the number of processors.
‘monster’, the system that builds all 20,000 items in dports, can complete the run in 15 hours. Compare this to the 2 weeks it used to take me to build the 12,000 packages in pkgsrc. This is admittedly on different hardware and different packaging systems, but it gives a sense of the scale of the improvement.
The ‘poweroff’ command, the equivalent of ‘halt -p’, has been added based on a suggestion from Robin Hahling.
Matthew Dillon was using poudriere, the dports build tool, on a 48-core system. Poudriere was building all 20,000+ dports, so the machine was quite busy. He decided to get rid of as much contention as possible, and he’s listed all the ways DragonFly’s been streamlined by these efforts. We need to revisit some of our previous benchmarks…
If you’re watching for a certain event, dmesg(8) on DragonFly now has a -f flag that will display new output as it’s logged, sort of like ‘tail -f’.
While looking for a different bug, Matthew Dillon made some changes in the way memory usage is totaled in DragonFly. You’ll see this most when using ‘systat -vm 1’ or ‘vmstat’, probably.
John Marino has accomplished the major task of updating gdb/kgdb, to version 7.6.1 for DragonFly.
John Marino has put in a large patch to DragonFly 3.5, updating all sorts of language-related items. As he warns, you will need a full buildworld/buildkernel in a specific order to update. On the plus side, you can now probably use your native language for nvi and for git.
Matthew Dillon’s committed the work by Daniel Flores on Hammer 2 compression and Mihai Carabas’s vkernel hardware support – both Summer of Code projects. There’s a good amount of detail in the commit messages describing the work and what it changed; I expect more Summer of Code work to be getting committed…
Note: you’ll want to do a full update.
It’s now possible to use systat(1) to see per-connection speeds and pftop status, thanks to Matthew Dillon.
Antonio Huete Jimenez has committed his work on “dirfs”, a filesystem that lets you mount directories from your host machine within the running vkernel environment. It’s a sort of shared folders for vkernels. See the commit message for usage details.
Francois Tigeot has ported TTM to DragonFly from FreeBSD and I think a bit from OpenBSD. All this work has led to an update in the driver porting notes.
killall -T will now kill all processes associated with the current tty, except parents of the killall process itself. It’s a shortcut to “kill all these runaway items I started by accident”.
Apparently Sepherosa Ziehau has been improving DragonFly’s route table performance under extremely heavy load. (e.g. run efficiently; don’t die) I don’t have a definitive commit message to point at, but looking at his recent commits are a good start.
Thanks to Sepherosa Ziehau, Netperf will now calculate Jain’s fairness index. That is a formula that is both interesting and unfamiliar to me. Not that I understand it, of course – it’s just because it has a neat name.
Because Sepherosa Ziehau changed mbstat, anyone on bleeding-edge DragonFly will need to rebuild world, or else netstat will become confused.
There’s support for a new timer mechanism in DragonFly 3.5, for x86_64 users: TSC. Sepherosa Ziehau added support and has described how to disable it – it’s on by default. It speeds up some very basic (and frequently used) system calls.