That's right, Linus decides.
That's right, Linus decides.
Posted Aug 13, 2025 18:56 UTC (Wed) by koverstreet (✭ supporter ✭, #4296)In reply to: That's right, Linus decides. by ikm
Parent article: Kernel prepatch 6.17-rc1
There was a lot of drama over pull requests before, with repeated threats of removing bcachefs from the kernel; dealing with the fallout of that took up an enormous amount of time. I've gotten a lot of legitimate hate mail.
It really wasn't good. There was the three day shouting-match-over-email before Linus was finally able to communicate that the timeframe of when I was sending pull requests was the issue and what we wanted was for me to send them on Thursday. Calling it "whining" in response to trying to get out bugfixes; claims of bcachefs's journalling model being broken in response to needing to allocate more than 2GB of memory for journal replay (I rent servers with 256GB of ram), claims of "filesystems that don't need fsck" being the future. I'd have to go back through my inbox to find more, and I really don't want to; what I can tell you is that almost nothing resulted in actionable technical feedback.
So if I came across as on edge in that pull request thread, yes, I was. Yes, I could have handled it better, but it's been a lot to deal with and I'm honestly not sure the outcome would have been any different.
Meanwhile, I'm looking at all the technical metrics for how bcachefs is doing, and all that just leads me to ask "why?". I look at pull requests from other subsystems - have the type of patches I've been sending out of line? No, it doesn't look like it; perhaps pull requests could be clearer about criticality of bugfixes and things of that nature, but I see new features going into drivers during RCs all the time, and refactorings going into XFS during rc6 or rc7. The only thing that's been unusual about bcachefs's pull requests is volume - but we're a massive modern filesystem that's stabilizing rapidly, closing out bug reports, and supporting those users.
So I keep coming back to one basic question - why was any of this necessary?
If the process isn't working, and it hasn't been (again: bcachefs is doing well on technical metrics, pull request drama has never called that into question), the way to solve it is with a conversation. I think the chances for that happening evaporated a long time ago.
Posted Aug 13, 2025 19:55 UTC (Wed)
by mjg59 (subscriber, #23239)
[Link] (5 responses)
What's your end goal here? If you're trying to change Linus's behaviour, you're going about it in a way that's not only ineffective, you're actually making the problem worse - people are actually viewing it as justification for him behaving this way in other situations. If you're trying to get your code merged in a timely manner then, well, you're obviously failing there too.
It seems like you're not in a place to apologise and change your behaviour, and, well, I do understand that and I've been there before and I understand why it may feel incredibly unfair to be asked to. I'd recommend finding a good therapist to work on that, but also consider whether you can achieve more of what you want by just disengaging from LKML and having someone else take responsibility for managing pull requests and engaging with Linus and other maintainers. This may not be fair, it may not be just, but you're a technical person and you should understand the benefits of pragmatic solutions.
Posted Aug 13, 2025 23:43 UTC (Wed)
by koverstreet (✭ supporter ✭, #4296)
[Link] (4 responses)
Why'd you put up with it?
> But I feel like the fundamental thing you keep missing here is that it doesn't matter if you're right. It doesn't matter if you're right on technical grounds. It doesn't matter if you're right about the abuse you've received. It doesn't matter whose fault the entire situation is. You are not going to achieve your desired goals by behaving the way you are. Nobody is willing to support you. It may be horrifically unjust, but bcachefs will die and be forgotten and you will have wasted your time.
Ok, you think I've waging some kind of futile war. But - no.
I do have significant support, and a real community I've built up: that's not going to vanish if (when) we have to go the DKMS route. ZFS has shown that can work for a filesystem, they've made it all the way to distro installers, so I think that approach has some legs. People want this thing, it solves real problems and addresses real needs, and a lot of believe believe in my code and my methods. So I've got options here.
Option a: go the DKMS route for awhile. In a couple more years I should have erasure coding, online fsck and a whole bunch of other stuff done that'll make us more than competitive with ZFS for most people. There'll be some big deployments that are already in the works, and we'll be in distro installers - we were well supported by NixOS even before going upstream, I've just been waiting until the experimental label is off to push for more distro support, and that's six months away. Then, in a few years someone else can see about getting it back in (probably won't be me, someone else in the project), and we'll be much more solidly positioned should fights and drama like this arise.
Option b: people have been getting interested in FUSE performance, and I see no reason why a userspace filesystem can't be as fast as in-kernel, to within the margin of error. Ringbuffers for kernel <-> userspace fs communication, threads pinned to each core, temporary per-cpu mappings for zero copy to/from the pagecache - I've been sketching stuff out and it looks plenty doable, and that would open up new long term possilibities, like talking directly to NVME devices, which would cut out a lot of block layer overhead (the block layer really is fatter than it needs to be). A lot of interesting stuff is going on in userspace these days that we might be able to take advantage of.
Option c: I've in the past had real offers from people who wanted to use the bcachefs codebase for other products. Not my passion, but certainly would be lucrative.
Option d: Start playing music again, find a nice hippie village, start having a social life and just work on bcachefs as more of a hobby, supporting my friends and existing users who really like it. I'm sure I could find some way to pay the bills :)
IOW, I really have no need to put up with toxicity and drama if it gets to be too much. And it's been way over the top: I lost a very promising hire because of Linus's repeated public threats to remove bcachefs from the kernel (strangely enough, people don't want to leave a stable job for the new thing when the leader of the project is saying he's going to kill it, and all their coworkers are seeing it and telling them they'd be completely crazy to do it). And it's been an enormous time sink and source of stress: bcachefs isn't just me, it's a whole community, and the drama affects the entire community and I have to respond to it. On top of that, given how often the fights have been over bugfixes, and it doesn't seem to be getting better, I have to consider whether we're really going to have a stable reliable release process staying in the kernel.
So all of that means that being out of the kernel is probably going to be the more stable, secure option at this point.
I like the kernel _community_, I have a lot of friends in it that I genuinely enjoy working with and it's a project that I've genuinely enjoyed being a part of and want to support - but when I've gotten at least a dozen emails from Linus in just the past two months that don't fit on a screen and have all been about how he doesn't trust my judgement, thinks that everyone hates me, thinks I need therapy and have to give a public apology - yeesh. No thank you :)
> It seems like you're not in a place to apologise and change your behaviour, and, well, I do understand that and I've been there before and I understand why it may feel incredibly unfair to be asked to. I'd recommend finding a good therapist to work on that, but also consider whether you can achieve more of what you want by just disengaging from LKML and having someone else take responsibility for managing pull requests and engaging with Linus and other maintainers. This may not be fair, it may not be just, but you're a technical person and you should understand the benefits of pragmatic solutions.
Now hang on, which behavior are you referring to?
Technical criticism really has to be fair game if we're to take ourselves seriously as engineers. I don't mind in the slightest when people tear into my code, and in fact I rather enjoy it (I've said it elsewhere before, and I'll say it again - I'll bake and mail a plate of cookies to the first person that comes up with a good, intelligent insightful rant/flame about the bcachefs code. Stuff like that is pure gold; when people can talk in an articulate way about what frustrates them, that's some of the best and most useful critiquing you can get).
But from what I've seen of the people who've spoken up and said I've pissed them off - or even the stuff people have come up with digging through lore - I'm sorry, it's been just absurd. It's like people have collectively lost their minds and decided to go on a witchhunt (you do realize the kernel community is famously known for being toxic, right? It shouldn't surprise anyone).
The only person I'd remotely want to apologize to that I haven't already is Josef, because I was pretty savage about btrfs the other day on fsdevel. I think highlighting our track record and engineering on standards on filesystems definitely needed to be done; we're a technical community, and we should be making decisions for technical reasons, so even if people within the community don't want to hear it that needs to be highlighted and discussed before git rm -rfing bcachefs.
But Josef is a good guy, and that was a bit over the top, so if Josef's reading this - please consider this an apology.
As for the rest... sorry, not apologizing to people who start swearing at me in technical discussions :)
Posted Aug 14, 2025 1:59 UTC (Thu)
by mjg59 (subscriber, #23239)
[Link] (3 responses)
I didn't. I left and did something else.
> Now hang on, which behavior are you referring to?
I will not work with you. I will not work on any project that you're leading. This is *purely* as a result of reading your writings here and on LKML. I have no stake in the technical issues whatsoever. In reading your posts I see you reacting similarly to both cases where, yes, the other party is going beyond what I consider reasonable behaviour, but also where people have gone out of their way to provide you with support and advice. And maybe this wouldn't be the case if the level of tolerated toxicity in the kernel was more reasonable, and you'd have got along with everyone. But that's not where we are, that's not what happened, and now you just appear to be just as much of an asshole as Linus (if not more) except it's far easier to just ignore you because I don't need to deal with you if I want to get something upstream. And if you're unwilling to accept that there may be truth in that then you're *definitely* more of an asshole than Linus is, because at his worst he did step back and take some time to work on his interpersonal interactions and came back better (if still not great).
Seriously. Consider whether every single person who's complained about you is wrong, or whether there's any possibility that you could be a factor in this.
Posted Aug 14, 2025 4:14 UTC (Thu)
by koverstreet (✭ supporter ✭, #4296)
[Link] (2 responses)
But if I may unpack this a bit?
You're coming in with some really strong opinions about someone you've never worked with, taking the time to post on a public forum that I need therapy...
Look, the kernel is a high pressure, high stakes environment, it's a bit of a pressure, and we're coders - a group not exactly known for high emotional intelligence.
Don't you think that this might produce a lot of overreactions, and some rushing to superficial judgements?
I try not to judge people based only on what I hear from others... I try to keep an open mind. And I try not to keep old rivalries and feuds alive; it helps to remember that people may have been having a bad day in that one interaction you saw, or they may legitimately be doing a lot (possibly a lot of good) and under some stress - reactions get short in situations like that.
It helps not to make blanket statements and judgements about people. Look, I don't even consider Linus an asshole... control freak with some toxic behavior sure, but for me to judge anyone too harshly for that would be the pot calling the kettle black. I've also had plenty of moments where I genuinely enjoyed working with him, he has a lot of qualities I respect, and I try to keep that stuff in mind even when tensions have gotten waaaay too high and I need a break. It helps.
We've all had our moments, we're all (hopefully) learning and getting better. I know I've had plenty of moments of realization along the lines of "oh, I took that way too far - I need to think about how to approach that better next time", and I suspect you have too.
Such is life. Sometimes we all just need to chill out.
Posted Aug 15, 2025 13:04 UTC (Fri)
by ntcarruth (guest, #178852)
[Link] (1 responses)
I’m very much an outsider here, but wanted to make the following observation:
I admire Kent for trying to not hold grudges; the world would be a better place if more people were like that. Paradoxically, though, from some comments I’ve read here and on LKML, I wonder whether an attitude like that in the quote above, sufficiently extrapolated, could result in interactions like some people complain (fairly or unfairly) about having had with Kent? More specifically, from my own personal experience, I am inclined to believe the following:
Assuming that someone who swears at me is simply having a bad day is almost always a good thing.
Assuming that someone who tells me I’m wrong, even if they can’t explain why other than reference nebulous “experience”, is simply having a bad day, is generally a bad thing.
At any rate, I have certainly made the latter mistake. Experience, in my experience (excuse the repetition), almost always trumps theory, at least when the context surrounding the experience is applicable.
At any rate, from Kent’s comments elsewhere, he has more than one option for keeping bcachefs alive in or out of the kernel. Similar to what another commentator said below, Kent, keep up the good work, we all need better technology!
Posted Aug 15, 2025 18:05 UTC (Fri)
by koverstreet (✭ supporter ✭, #4296)
[Link]
Posted Aug 13, 2025 22:47 UTC (Wed)
by ikm (guest, #493)
[Link]
I honestly don't think there's anything wrong with the code. I've been a long-time user of the original bcache and it's been rock solid, so I'm sure you can totally pull it off with bcachefs - I've seen you do it before. Furthermore, I'm sure one can easily find a lot of lower quality work in the kernel right now if one decides to dig for it for some reason. I don't think that's really the problem.
Thing is, writing the code is one thing, but selling it to the public is an entirely different one. When I want to send a patch to some upstream project, and the patch itself is done, I always have this thought crossing my mind: "ok, the easy predictable part is done, now for the hard, unpredictable one". I then have to explain what this patch is, why it's necessary, how I tested it, how I tried to adhere to the project's existing best practices, and also make sure it's super simple to apply. When I do so, I try to put myself in the shoes of the person I'm addressing and imagine what they might think and what their objections might be. Oftentimes this goes smooth, but sometimes I have a really hard time and it simply goes nowhere. It's impossible to predict, really - you just have to keep a positive attitude and hope you can get your point across. When you see your pitch not working, trying to be flexible, finding other angles, better reasoning, adapting your work to the received feedback, iterate, etc etc. And hoping that eventually it works.
Yes, it sucks to have to prove to other people that your work is sound and your reasoning is right, especially when you *know* it is. Unfortunately, *they* often don't. They might also have their own limitations and flaws when it comes to communication. Ever been to a technical interview where you knew you could totally ace the job, but left the interviewer totally unconvinced? Unfortunately, winning over people is a completely different discipline, but a necessary one nonetheless.
> the way to solve it is with a conversation. I think the chances for that happening evaporated a long time ago.
I actually have a feeling that they didn't yet. Did you ask yourself why bcachefs wasn't removed in this -rc1? I keep thinking about this, and the only reason I see is because Linus doesn't really want to, so he waits for some reason not to. I think you can still give him that reason. Honestly, just writing the same thing you wrote here, about being tired and frustrated, being on edge, having to deal with non-technical issues, etc etc, and asking for a time-out for a release cycle to rethink the communication strategy, might just be enough. The only thing which would be absolutely necessary is to treat people with respect - we are all humans, we all have flaws, we're all struggling, and no one really knows how to solve this, so we have to try and be kind to one another in the process, even when nothing seems to work. And hope for the best.
That's right, Linus decides.
That's right, Linus decides.
That's right, Linus decides.
That's right, Linus decides.
Experience and theory
Experience and theory
That's right, Linus decides.