KVABIO and what it means

Matthew Dillon has added KVABIO, an API for avoiding the need to sync the TLB across all CPUs before continuing.  What’s this mean?  The more CPUs you are dealing with, the longer it takes to make sure all of them have the same cached view of the virtual memory.   There’s a tradeoff – caching that view speeds up memory access, but the time cost of the synchronization can erase those benefits.

This API is now supported for NVMe and swap, HAMMER2, and tmpfs.  Note that those last two links show a huge drop in IPI messaging.  In the real world, this showed about a 5% improvement in performance for CPU-intensive work like complete synth builds.  (Based on IRC conversations.)

In Other BSDs for 2017/10/21

Cobbled together Friday night because my new job oddly has less hours of work but less time to screw around.  That’s for the best.

DragonFly 4.9 users and dports

Because of the major version number change, there’s no packages built for DragonFly 4.9.  Your options are to either update to 5.1 (which you probably meant to do anyway if you are running current) or manually point to the newest packages.  Or just build from dports.

For clarity, this does not affect you at all if you are running 5.0 release.  It only affects you if you are running DragonFly-current and have not updated in a while.