Behold, a Linux maintainer openly admitting to attempting to sabotage the entire Rust for Linux project:
https://lwn.net/ml/all/[email protected]/
The good news is this doesn’t affect drm/asahi, our GPU driver. The bad news is it does affect all the other drivers we’re (re)writing in Rust, two so far with a third one coming.
Another choice quote, calling R4L “cancer”: https://lore.kernel.org/lkml/[email protected]/
Personally, I would consider this grounds for removal of Christoph from the Linux project on Code of Conduct violation grounds, but sadly I doubt much will happen other than draining a lot of people’s energy and will to continue the project until Linus says “fuck you” or something.
As for how to move forward, if I were one of the Rust maintainers, I would just merge the patch (which does not touch code formally maintained by the dissenter). Either Linus takes the pull, and whatever Christoph says is irrelevant, or he doesn’t, and R4L dies. Everything else is a waste of everyone’s time and energy.
Edit: Sent in my 2 cents: https://lore.kernel.org/rust-for-linux/[email protected]/T/#m1944b6d485070970e359bbc7baa71b04c86a30af
You know as someone so far removed from kernel development as I am I have to say that Rust devs are the most annoying fanboys there are and ngl if this kills R4L I won’t even notice aside from those drama threads dissappearing. Just write your own Kernel in Rust if you must. With Blackjack and Hookers.
Is no one saying something because Christoph H. is just overreaching?
Because marcan is overreacting as usual, and is a very questionable character overall.
Great programmers often have personality or social problems
Then are they really that great? Nobody wants to work with people who are hard to work with…
Man, some folks around here really make it obvious that they’ve never been yelled at by Linus in-person.
I’m personally on board with the comment left by @[email protected]. I think marcan is unnecessarily escalating this situation and I’d hardly describe Christoph’s behavior as sabotage. He does appear to have a real technical concern regarding maintainability and I think discussing that concern is more productive than dismissing it and calling him a saboteur.
Do you take this sentence seriously, or not?
I will do everything I can do to stop this.
As far as I can tell, “this” here refers to literally any Rust code that isn’t constrained within a specific driver. That does indeed seem like a full-on attempt to stop the R4L project entirely.
He does appear to have a real technical concern regarding maintainability.
“Appear” is doing some heavy lifting there. Opponents of the R4L project always couch their objections in technical concerns. For what it’s worth, I can’t actually find any concerns of merit or substance in that particular thread, although navigating mailing list threads is honestly pretty error-prone, so I may have missed it.
I do take it seriously and I think he’s overreacting a little but he does make a reasonable point. Bringing 2 languages into the kernel does create a divide that can come with a maintenance burden. The burden is probably worth the benefits but it’s still an additional burden and that is a valid concern IMO that should be properly addressed and argued with pros/cons rather than name calling and dismissal. Maybe he is acting in bad faith, but I feel like that should only be the conclusion drawn AFTER a reasonable attempt to talk things over has been made.
Additionally assuming someone is acting in bad faith when they’re not can make them jaded with the rust community and push them to actually acting with bad faith even if they weren’t before.
Regardless of the situation and whether he’s acting in bad faith or not I feel like marcan’s comments add nothing productive to the situation and that was my real point with the comment.
I wrote a longer reply with links, but somehow it didn’t actually post; so this will be shorter and unsourced. Sorry about that.
There already was a discussion, over the course of several years, about whether to add Rust to the kernel. Linus merged
rust/kernel
into the mainline in 2022, and it was released in Linux 6.1. The patch that Hellwig opposed did not introduce Rust, it just added more Rust.Hellwig also made it pretty clear that he wasn’t open to discussion. If you read the thread, there were numerous attempts to “talk things over.”
You may be right that Marcan’s posts on Mastodon added nothing productive, though I honestly think there’s some value in sharing behavior like Hellwig’s with the broader programming community. But his posts in the actual mailing list seem pretty sensible, albeit provocatively worded.
Also, in case you didn’t know, similar behavior (to Hellwig’s) led the primary Rust for Linux maintainer, Wedson Almeida Filho, to step down back in August. Marcan is correct that the anti-R4L maintainers are successfully demoralizing the R4L people.
I am not a programmer. If you showed me C code and called it Rust, or vice versa, I would probably not be able to tell the difference. As such I’m not going to focus on technical merits or demerits, I’ll focus on what people say.
- [Danilo Krummrich] What does “your code” mean? Duplicated in every driver?
- [Christoph Hellwig] Yes, interfaces to the DMA API should stay in readable C code and not in weird bindings so that it reminds greppable and maintainable.
- [DK] Rust drivers shouldn’t use C APIs directly, but rather use an abstraction of the corresponding C API.
- [CH] Don’t force me to deal with your shiny language of the day.
- [DK] Again, no one asks you to deal with or maintain this piece of Rust code.
- [CH] Maintaining multi-language projects is a pain I have no interest in dealing with. If you want to use something that’s not C, be that assembly or rust you write to C interfaces and deal with the impedence mismatch yourself as far as I’m concerned.
- [DK] This is exactly what we’re doing and proposing here, isn’t it? // We wrote a single piece of Rust code that abstracts the C API for all Rust drivers, which we offer to maintain ourselves. // What else are you asking for?
- [DK] Since there hasn’t been a reply so far, I assume that we’re good with maintaining the DMA Rust abstractions separately. // Hence, the next version of this patch series will have the corresponding maintainer entry.
What I take from this interaction is that Hellwig is not really picking a bone against Rust; his main concern is introducing new languages into the kernel and reducing its maintainability. And IMO Krummrich’s answer up to the second-to-last reply was really great - addressing the complain by highlighting that C developers won’t need to bother with that chunk of Rust code. (That last reply was awful, though.)
Based on this interaction I think that I agree with 5714 in this thread, that Hellwig might be overreaching.
So far, so good. What Hector Martin is doing there is something else. He is not selling the merits of the project Rust4Linux, he’s simply creating drama, by distorting Hellwig’s position from “don’t bring new languages into the kernel” into some sort of personal crusade against Rust.
And it’s rather “curious” how he brings up the CoC as some sort of rubber stick to bash people with, but omits which part of the CoC Hellwig would allegedly have violated.
[@raulinbonn] @marcan He does use the proper name shortly afterwards, but calling it “the another language” instead of just Rust sounds already quite loaded and belittling really. As if trying not to even acknowledge its proper name and existence.
Relevant tidbit: “the another language” sounds like a word-by-word translation from German “die andere Sprache”. It doesn’t really sound dismissive in German (Hellwig is clearly a German speaker.)
“As if trying not to even acknowledge its proper name and existence.” - okay… now the user is assuming = making shit up. It’s perfectly possible that Hellwig simply didn’t call it “Rust” to focus on the fact that his problem is not against Rust, but against a mixed language codebase - the complete opposite of what raulinbonn is assuming.
don’t bring new languages into the kernel
Didn’t the guy who decides on bringing new languages to the kernel(that’s not Christoph Hellwig) specifically said “do bring Rust to the kernel”? And bringing it to the drivers not core subsystems is exactly because C developers won’t need to maintain it?
Didn’t the guy who decides on bringing new languages to the kernel(that’s not Christoph Hellwig) specifically said “do bring Rust to the kernel”?
Torvalds? Apparently, yes.
Hector Martin isn’t claiming that Hellwig’s crusade is against Rust, but against R4L. The problem is that the R4L project has always been about Rust in the kernel. “Don’t bring new languages into the kernel” is a crusade against R4L.
Hector Martin isn’t claiming that Hellwig’s crusade is against Rust, but against R4L.
Fair point.
“Don’t bring new languages into the kernel” is a crusade against R4L.
Still neither a crusade nor a personal one, unless proved contrariwise. It’s just that he’s prioritising some things and the R4L project is prioritising other things.
I didn’t use the word “personal”, but it’s inherently somewhat personal in that it’s one person trying to fight back against a decision that Linus and GKH have both endorsed (to put Rust in the kernel). “Crusade” is strong wording, but so is “I will do anything I can to stop this.” That’s far beyond simply “prioritizing [other] things.”
I’m aware that you didn’t use the word “personal”; I did. (Sorry if what I said implied otherwise, it was my bad.) My point is that Martin is making a big deal like Hellwig had some bone to pick specifically against the R4L project and Rust, you know?
Based on the info that I currently have at hand I do think that the project will progress further, against Hellwig’s wish, and this will be a net benefit for the kernel. I just don’t see the big deal that people make of his opposition, he’s just being the old man screaming at cloud.
But…that’s exactly what’s happening. Rust is already in the kernel, with both Linus’s and GKH’s approval. CH is trying to singlehandedly reject any use of Rust in any part of the kernel where he has maintainer status. That’s pretty specific to R4L.
But…that’s exactly what’s happening
Well, then based on what you guys (specially you) are saying, it’s old man screaming at cloud. Torvalds and/or Kroah-Hartman* will likely need to intervene, since as you said they approved it; this drama Martin is doing in social media is pretty much pointless.
And if there’s a violation in the CoC it has zero to do with what he says (calling the R4L project “cancer”); it’s about obstructing other developers.
I also just catch something from the post I didn’t notice before:
As for how to move forward, if I were one of the Rust maintainers, I would just merge the patch
Martin isn’t even relevant! He’s just for the popcorn, like the rest of us! Free kernel development popcorn!
*speaking on Kroah-Hartman, do those changes proposed by the project affect the stable branch now?
it’s old man screaming at cloud
Not exactly – part of the point of that idiom is that the old man is powerless, and the cloud ignores him. But Hellwig is using his authority as a maintainer to make things more difficult for R4L with his “explicit NACK”.
this drama Martin is doing in social media is pretty much pointless.
Well, maybe, and if you haven’t seen it already, Linus chastised him for that. Several people have spoken up to say that Martin has done this sort of thing before.
But on the other hand, arguably it is important for people who don’t read the Linux kernel mailing list to hear when things like this happen; and if Martin hadn’t posted about it, how would we have known about it? Would The Register have written the summary that they did?
Martin isn’t even relevant! He’s just for the popcorn, like the rest of us! Free kernel development popcorn!
I’m not sure why he phrased things that way, because he was a maintainer of ARM/APPLE, which relies on R4L, until he decided to step down following Linus’s reprimand. So no, he wasn’t just an outside observer.
…do those changes proposed by the project affect the stable branch now?
Not sure which changes you mean, exactly, but the
rust/kernel
folder in the patch set does indeed already exist in the stable branch.
Good grief. People like this Chris dude hold progress back. I’ll keep banging the drum (to be heard by not a single kernel dev, but anyway): the linux kernel need 90% of the Linux Foundation’s funding, not a mere 2%. There should be so many people wanting to be a maintainer that people who openly declare that they want to get in the way like this are easier to remove.
His point could be valid, if C was working fine and Rust didn’t fix it. But C isn’t working fine and Rust is the first actual solution we’ve ever had.
He’s just an old man saying we can’t have cars on the road because they’ll scare the horses.
In this thread, much the same as in any discussion of the topic, we learn that Rust is vital to the survival of the Linux kernel and we’re surely doomed without it, and that the absence of languages other than C in the Linux kernel is the only thing preventing the demons of chaos from arising to tear our souls to shreds and we must remain pure.
looks like a lot of people want to die on the C programming hill. Cannot blame them, they have no will or ability to keep learning in an industry that *checks notes* …asks you to keep learning!
As a programmer who integrates many languages together in the same product this is a pretty clear line in the sand. Where the languages interface, it’s up to the new language to adopt the interfaces offered by the older language. Rust guys said they will do this, C guys said why don’t you assume this responsibility (they already are). This is either a miscommunication or deliberate scape goat reasoning and deflection. There is no good reason why two languages can’t work together with interfaces. I think the C guys are old, grumpy and fearful.
Disclaimer: I don’t even like Rust as a language. Just calling it how I see it.