
The bcachefs file system, now “externally maintained” outside the Linux kernel codebase, offers packages of its first version to be loadable on the fly.
The development of bcachefs has been officially jettisoned from that of the Linux kernel itself. At present, the work-in-progress kernel 6.17 still contains bcachefs code, but unmodified from the 6.16 release. In response, the project has published its first set of packages of a version that can be dynamically loaded as a DKMS module, as promised a couple of weeks ago in an email from project lead Kent Overstreet.
It’s available as an APT repository, which for the time being limits it to Ubuntu and Debian-based distros.
This is the code that would have been the newer revision inside kernel 6.17 – but Linus Torvalds banished it last month. This means that if you test on the current release candidate of kernel 6.17, there are two different versions of bcachefs available: the built-in one, which is the same code as in kernel 6.16, and alternatively the newer version available in the dynamically loaded DKMS code.
Linux benchmarking site Phoronix recently ran a set of performance tests comparing all the built-in file systems in 6.17, and bcachefs did not fare well. We counted 16 tests across five pages of graphs, and bcachefs was the slowest or next-to-last in all of them. Phoronix repeated the tests with the new DKMS version, and it does comparatively better. In multiple tests, the new version is about twice as fast, and ranks in the middle of the pack.
So moving to DKMS has not directly harmed it, and the new version is performing considerably better. There’s still room for improvement, but this young and not yet highly optimized code is progressing nicely.
openSUSE changes position
Since we reported that openSUSE was dropping bcachefs support, Overstreet has talked to the kernel maintainers there too. It looks like the company’s hard-line stance has been toned down. For now, there is a patch to the openSUSE kernel that prints a warning message:
The comments in the openSUSE bugzilla entry listed there show that the change is under consideration. After Overstreet chimed in on the openSUSE Factory mailing list, it now looks like openSUSE Tumbleweed won’t remove bcachefs when kernel 6.17 ships. Developer Jiří Slabý said:
This is good news for Tumbleweed users, as well as for bcachefs itself.
There may be trouble ahead…
Not all the news trickling out is good, though. Long-time kernel developer Christoph Hellwig submitted a patch to linux-next that would remove support for the write_cache_pages API from kernel 6.18 and later.
The proposed change is that with the removal of bcachefs, nothing uses it any more. NTFS3 is now built in and OpenZFS can’t be included and never will, unless Oracle decides to re-license it – which is unlikely.
Hellwig has occasionally featured on The Register for a decade or more, since he accused VMware of ripping off Linux kernel source code in 2015. In a 2016 follow-up, we referred to him as an “ace kernel developer.”
It could be said, though, he’s no diplomat. More recently, The Reg reported that he likened mixing Rust and C in the Linux kernel to cancer.
It does look like removing this API would make life very much more difficult for file systems whose code does not form part of the kernel source code. Even if no built-in code uses it, we’d prefer not to see OpenZFS and bcachefs crippled by its removal.
Bootnote
When it looked like bcachefs would be excommunicated, we reported on criticism by Meta kernel developer Josef Bacik, who praised Btrfs and whose criticisms of Overstreet we felt were among the more savage. The personality clashes to which we referred were not only those between Torvalds and Overstreet.
Just a couple of weeks later, Bacik announced on Mastodon that he was leaving Meta and stopping his kernel development efforts. Instead, he’s going to work for cash bonfire owners Anthropic. ®