Hammer2 status

This is a little old, but Matthew Dillon noted the status of his Hammer2 work a little while ago.  Some highlights: he’s intending Hammer2 to be usable on a single host by the time of the next DragonFly release (summer 2014), the Summer of Code project for compression has already been integrated, and he listed different parts of the work that may be interesting for anyone wanting to chip in.

Slightly related: Matt posted some Hammer2 comments on the DragonFly 3.6 release story on Slashdot that may be interesting.  Don’t bother reading the other comments; they’ll make your eyeballs bleed.

DragonFly 3.6 released

The 3.6 release of DragonFly is available now.  I just put up those images last night, so if your favorite mirror doesn’t have it, give it a few hours.

For those updating from 3.4 to 3.6: there’s an ABI change, so you will have to upgrade all your packages.  If you’re using pkgsrc and ready to switch to dports, now’s the time.  If you already switched to dports on your 3.4 system, binary packages for 3.6 have already been built and you can use pkg to upgrade.

Also for upgrades from 3.4: You can pull the 3.6 source normally:

cd /usr/src
git fetch origin
git branch DragonFly_RELEASE_3_6 origin/DragonFly_RELEASE_3_6
git checkout DragonFly_RELEASE_3_6

But there’s a slight change needed for the 3.4 to 3.6 transition: an extra reboot in the build process:

# make buildworld && make buildkernel && make installkernel && make installworld && reboot

# make upgrade

This is all noted in /usr/src/UPDATING and in the release notes, but I’m taking no chances.

Performance tuning

Matthew Dillon did some more performance tuning for DragonFly.  I’ll just pull a paragraph from the commit message, since that will have more impact than anything I say:

Improves fork/exec concurrency on monster of static binaries from 14200/sec to 55000/sec+. For dynamic binaries improve from around 2500/sec to 9000/sec or so (48 cores fork/exec’ing different dynamic binaries). For the same dynamic binary it’s more around 5000/sec or so.

“monster” is a 48-core machine used for testing.

In Other BSDs for 2013/10/12

I got some PC-BSD items this week, too.

DragonFly pkgsrc repo is frozen

The pkgsrc repository in git for DragonFly is currently frozen.  This is because many people have switched over to dports, and also because it’s a lot of work to keep it functional.  If you do want to pull newer pkgsrc material, use cvs and grab it from a NetBSD server.

As the message notes, don’t go switching to DragonFly-current right now, cause there’s a lot of new material in there and it may not be quite safe.  (There’s an ABI change that will require all new builds of your ports, for instance.)

OpenZFS announced

ZFS was originally created at Sun and open sourced.  Sun was absorbed by Oracle and stopped being open (or even really existing), so ZFS was taken up by several separate groups – FreeBSD and Illumos being two examples.  OpenZFS has been announced, in part to provide common reference for other platforms that might implement it and probably to avoid capability fragmentation.  It’s certainly a good idea.

(If I have my history wrong, please correct me.)

Moving dports to gcc 4.7

DragonFly has two included compilers – GCC 4.4, and GCC 4.7.  Traditionally, we switch from one compiler to the other as default, and then replace the old one with a newer release, and so on.

Until recently, dports built almost exclusively using GCC 4.4.  John Marino’s switching to GCC 4.7, for a variety of reasons he lists in a recent post to users@.  An interesting point that he raises: GCC 4.4 won’t necessarily be replaced with a newer GCC, but perhaps clang?

TCP improvements

Sepherosa Ziehau has made a number of improvements to TCP in DragonFly – specifically, nonblocking and blocking connect(2) performance.  See each of his commits for statistics on how much this has reduced processor use under high load.  He has also written up an extensive description of how all this TCP stuff works in DragonFly.

In similar news, he has a nginx patch that delivers a significant performance increase.  It may go into nginx itself.