August 9, 2019

A number of Foundation-sponsored projects are currently in progress – here are some highlights:

Scalability Improvements
Each year CPUs are made with larger core and thread counts, and running FreeBSD on these new CPUs often uncovers new scalability bottlenecks. Mateusz Guzik is investigating and addressing bottlenecks, using a number of motivating use cases,
such as “poudriere -j 128” package builds and “will-it-scale”.

Deficiencies in scalability diagnostic tools (such as LOCK_PROFILING) may be found and addressed during the project. Improvements in shareable locks, VFS namecache locking, process management, and performance improvements in a number of kernel subsystems are the expected outcomes from this project, which is expected to complete in the third quarter of 2019.

Linuxulator Diagnostics Improvements
FreeBSD has long provided a Linux system-call compatibility layer and in the past was able to execute most Linux binaries (in some cases faster than Linux). Unfortunately a lack of updates for new Linux system calls caused it to fall behind, unable to execute most contemporary Linux binaries.

Edward Tomasz Napierala’s project will provide solid foundations for debugging failures encountered when running modern Linux binaries, and improving the Linux compatibility at both binary and source-level levels. It will also clean up the existing Linuxulator implementation and make it easier and quicker to port software originally written for, and maintained primarily under, Linux.

FUSE (Filesystem in USErspace) allows FreeBSD systems to mount filesystems that are serviced by a userspace daemon, and most FUSE daemons are easily portable to FreeBSD. As of this writing, the ports tree contains 41 FUSE filesystems.The most popular is fuse-ntfs, which is the only way to access Microsoft NTFS-formatted media using FreeBSD.

This project will fix all of fuse’s known bugs, update the kernel API, and add a new test suite. Full details are available in the FreeBSD Second Quarter report.

SDIO Integration
This project aims to integrate SDIO support as an initial step towards supporting SDIO-conected WiFi modules, as on the Raspberry Pi and others.

The Raspberry Pi 3 and Zero W, as well as the 3A+ and 3B+ have integrated WLAN based on Broadcom’s FullMAC WiFi devices. These devices are attached via SDIO WiFi. FreeBSD at this point supports neither the FullMAC WLAN driver, nor does FreeBSD have any other SDIO WiFi attachments.

Based on Ilya Bakulin’s MMCCAM SDIO stack work, Bjoern Zeeb’s project will help to integrate further work, test, and enhance it where necessary in order to be able to provide a SDIO WiFi communications infrastructure.