XaiJu
bcachefs
bcachefs

patreon


Still hacking away at reflink

It's pretty close to done, but working through the last of the xfstests failures has been tedious.

But - I just pushed out a punch of prep work patches, and something else cool is now done - we're exporting the actual filesystem blocksize to the Linux VFS, instead of pretending the filesystem blocksize is actually PAGE_SIZE. This was needed to get one of the reflink tests in xfstests to pass, but it was also the biggest blocker for supporting variable size pages (i.e. compound pages) in the page cache.

That, in turn, is going to be a _huge_ boost to buffered IO performance when it happens. Right now, the page cache stores everything in 4k pages - and the overhead of walking the page cache, looking up a page and locking it for every 4k of data is why for a lot of applications buffered IO is significantly slower than direct IO in Linux right now.

Compound pages in the page cache is still a ways off, but we're that much closer now!

Comments

What did you think of the recent upstreaming attempt? Better/worse than expected? Anything specific that needs a fix?

Fantastic news! Could you share which xfs tests are failing? Are there any more sections beyond reflink to become compliant with, or is this the last of it?

Lurf Jurv

As a quite happy zfs user, I'm really looking forward to use bcachefs as regular data FS someday, in order to avoid all the dkms trouble I get when changing kernels, and perhaps use less memory on the servers I'm working on. Kent, do you have any idea when bcachefs could go mainline ? That would make it so much simpler for guys like me to test and use.


More Creators