Linus has never once found a mistake in the bcachefs pull requests, but he has created massive headaches for getting bugfixes out to users that were waiting on them.
2,109 karma · joined July 30, 2012
Linus has never once found a mistake in the bcachefs pull requests, but he has created massive headaches for getting bugfixes out to users that were waiting on them.
And every time something like this comes up, I end up with every sort of accusation pointed at me, and no one seems to be willing to look at the wider picture - why is the kernel community still unable to figure out a plan to get a trustworthy modern filesystem?
> This is your problem to fix.
No, I've said from the start that this needs to be a community effort. A filesystem is too big for one person.
Be realistic :) If the community wants this to happen, the community will have to step up.
Meanwhile just scan the thread for btrfs reports...
No, I was not "ignoring the merge window". Linus was trying to make and dictate calls on what is and is not a critical bugfix, and with a filesystem eating bug we needed to respond to, that was an unacceptable situation.
Also, if we're posting our wishlist - Preonic form factor.
NixOS and Arch are the two distros that are making the DKMS transition the smoothest.
Now, the engineering effort required to rewrite or redo in Rust, that's a different story of course.
For me, the things that would make it just perfect would be more ergonomic Cap'n Proto support (eliminate a ton of fiddly code for on disk data structures), and dependent types.
The "why" is important.
That's how you end up with decisionmaking that's nothing more than popularity contests and no one even bothering to do the analysis on which option is technically better.
That way leads the death of leadership.
If you want to accomplish something as challenging as a filesystem, you do it by consistently making the right call and sticking to it, over and over and over.
And if you keep doing that, eventually you end up with the most active filesystem community around, and the ability to flip even the kernel community the bird when their weaponized incompetence becomes too much :)
But please do tell us why it's garbage
Not comparable to losing filesystems, sorry...
Read another book of his and you'd think he was a communist, another an anarchist, et cetera.
He liked to explore ideas. If there's one thing that's reasonably consistent across his work, it's his belief in individual agency.
It doesn't matter if you want to "tolerate" it if every time there's a filesystem thread there's stories about lost filesystem and unfixed bugs, and the rare times people try to report bugs or issues they go nowhere.
You're ranting about reality, and somehow I doubt you were ever a user of mine.
I've worked hard to establish an engineering community where no one has to be afraid to point out broken shit, including and especially in my code, and I wouldn't want your attitude anywhere near it.
there's a feedback effect: if users know that a filesystem takes these kinds of issues seriously and will drop what they're doing and jump on them, a lot of users will very happily spend the time reporting bugs and working with devs to get it resolved.
people don't like wasting their time on bug reports that go into the void. they do like contributing their time when they know it's going to get their issue fixed and make things better for everyone.
this is why I regularly tell people "FEED ME YOUR BUG REPORTS! I WANT THEM ALL!"
it's just what you have to do if you want your code to be truly bulletproof.
I don't.
Early bcachefs was ridiculously fast, it's gotten slower as we've grown all the features to compete with ZFS. All the database stuff that gives us amazing flexibility adds overhead (the btree iterator code has gotten fat), backpointers and modern accounting blew up our journalling overhead. A lot things that we needed for scalability, or hardening/self healing, have added overhead.
COW really isn't the main thing, it's cramming all the features in that we want these days while keeping the fastpaths fast that's the tricky part.
But, a lot of this stuff is fixable - performance just hasn't been the priority, since the actual users aren't complaining about performance and are instead clamoring for things like erasure coding.
(and, the performance numbers that I've seen comparing us to ZFS still put us _significantly faster)
There's no inherent reason why a filesystem in userspace has to have a measurable performance impact over in-kernel, done right. It would be a lot of engineering work, though.
Context switches aren't that expensive when you're staying on the same core, it's IPIs (waking up a thread on another CPU) that's inherently expensive; and you need zero copy to/from the pagecache, which is tricky. But it totally could be done.