DragonFly BSD 4.6 ReleaseAugust 5, 2016
DragonFly BSD 4.6 Release
DragonFly version 4.6 brings more updates to accelerated video for both i915 and radeon users, home-grown support for NVMe controllers, preliminary EFI support, improvements in SMP and networking performance under heavy load, and a full range of binary packages.
The details of all commits between the 4.4 and 4.6 branches are available in the associated commit messages for 4.6RC, 4.6RC2, and 4.6.0.
Improved graphics support
The i915 driver has been updated to match the version found with the Linux 4.4 kernel. This gives us significantly better stability on newer cpus, Broadwell and Skylake in particular.
The radeon driver has been updated to match Linux 3.18, and controls for the backlight are available through drm.radeon.backlight.
We now have a NVMe driver (PCIe SSDs). It currently must be kldloaded with nvme_load=”YES” in /boot/loader.conf. The driver uses all concurrency features offered by the chip and will distribute queues and interrupts across multiple CPUs to maximize performance. It has been tested up to around 1.05M IOPS @4K, and roughly 6.5 GBytes/sec @32K (random read from urandom-filled partition, physio, many threads), with the 2xE5-2620v4 (xeon) test server 78% idle in the IOPS test and 72% idle on the bandwidth test. In other words, we maxed out the three NVMe devices we had plugged in and the system still had plenty of suds left over.
Please note that a machine’s ability to boot from an NVMe device depends on the BIOS, and not DragonFly. Most BIOSes cannot boot from NVMe devices and those that can probably only do it through UEFI. Info on device state is available with the new utility nvmectl.
NVMe support is not in the default kernel, yet. Put nvme_load=”YES” in loader.conf to use it.
SMP Performance Significantly Improved
SMP performance was already very good. As part of the NVMe driver work we revamped the buffer cache subsystem and a number of other I/O related paths, further reducing lock contention and IPI signalling overheads. We also put topology-aware cpu cache localization into the kernel memory allocator (primarily helps multi-socket systems and systems with high core counts).
The network subsystem also continues to receive significant improvement, with modest machine configurations now capable of handling upwards of 580K conns/sec.
Expansion of Supported Packages
DragonFly now supports over 24000 packages via its dports mechanism. This year a great deal of work went into improving library compatibility and improving the quality of the ports and the dependability of the bulk build system that backs them. Normal users can now do customized bulk builds of their own ports packages through a simplified build interface called “synth”, which is itself available via the dports system (if desired, and you have sufficient machine resources and time).
Preliminary EFI Support
DragonFly now supports (64-bit) EFI booting, but it has not been integrated into the installer. Following the manual steps of other users is the immediate solution.