Shut up ARP

Sepherosa Ziehau has introduced a new sysctl:

net.link.ether.inet.log_arp_creation_failure

Set this to zero and you won’t get endless ARP events from networks you aren’t on.  For example, I’m hooked up to a cable modem.  I only get a public routable IP address, but the network used for the cable modem network itself bleeds ARP packets out where my DragonFly machine can see it.  Since it’s on a different network segment than the address I receive through DHCP, it always fails and the system logs it.  For example:

May 11 05:20:52 www kernel: arplookup 100.68.112.145 failed: host is not on local network

I can’t do much about it since that layer 2 leakiness is going to happen, but I can shut it up with this sysctl – and thank goodness, cause I’ve been seeing these messages since first using a DOCSIS modem in… 2001 or so?

Building only one compiler

DragonFly builds two compilers by default.  If you weren’t interesting in building both, there were switches to build only the default, like NO_GCC47.  This changed with every compiler update.

With the switch to GCC 5, the new switch is “NO_ALTCOMPILER”.  That will last through compiler changes.  I’m mentioning this now because sooner or later, you’ll want to gain back some time on a buildworld.

Hammer and Hammer2 details

I haven’t been drawing enough attention to it, but there’s been a bunch of HAMMER filesystem activity lately: First, Tomohiro Kusumi has been working on HAMMER – these posts are a small subset of his commits.  Second, Matthew Dillon has been working full steam ahead on HAMMER2.  The HAMMER2 design document has been updated (read this!), and he’s already accomplished master->slave disk syncing.

It’s not ready for production, of course, which you may already realize, so don’t install it unless you want to work on the code.

V4-mapped addresses out, TCP MTU discovery in

Sepherosa Ziehau has posted a note that V4-mapped addressing is no longer supported in DragonFly.  You will need to do a full buildworld/buildkernel if you are running master.  Also, TCP MTU path discovery is on by default.  Also also, he’s added a SOL_SOCKET/SO_CPUINT socket option for use to reduce load in heavy network activity.  As usual, I don’t quite comprehend.

Installworld, no matter what

It’s possible, if you are several releases (years) behind, to end up with a DragonFly system that can’t compile and install the current release, due to incremental changes over time.  It’s rare, but it could happen now between, say, version 3.4 and 4.0.  The usual solution would be to incrementally upgrade in order, which is a lot of building and updating.  The alternative is the new installworld-force option from Matthew Dillon that forces a new set of binaries into place.  Use as a last resort.

A pile of DragonFly commits

In an effort to reduce my backlog of DragonFly things to post about, here’s quick notes: