this post was submitted on 03 Feb 2025
103 points (84.6% liked)

Linux

5864 readers
274 users here now

A community for everything relating to the linux operating system

Also check out [email protected]

Original icon base courtesy of [email protected] and The GIMP

founded 2 years ago
MODERATORS
 

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 are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 48 points 3 days ago* (last edited 3 days ago) (4 children)

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.

This is relevant:

  • [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.

[–] [email protected] 24 points 3 days ago (1 children)

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.

[–] [email protected] 1 points 3 days ago (1 children)

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.

[–] [email protected] 14 points 3 days ago (1 children)

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."

[–] [email protected] 3 points 3 days ago* (last edited 3 days ago) (1 children)

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.

[–] [email protected] 6 points 3 days ago (1 children)

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.

[–] [email protected] 1 points 2 days ago* (last edited 2 days ago)

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?

[–] pressanykeynow 10 points 2 days ago (1 children)

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?

[–] [email protected] 5 points 2 days ago

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.

[–] [email protected] -1 points 3 days ago (1 children)

Your position is entirely reasonable and an excellent example of how ignoring technical details leads to failures of technical leadership. C is one of several languages notable for extreme lack of memory safety. Its lack of safety has been repeatedly quantified; I like to recommend Gaynor 2021 for a high-level introduction. Rust was introduced primarily to replace C (and a relative, C++) and improve the overall security of computing systems.

The "merits of the project Rust4Linux" are simple and obvious: as code is translated from C to Rust, its overall characteristics (readability, performance, low-level modeling of machine behavior) will remain, but overall memory safety will increase. Opposition to it is reactionary, not well-grounded in technical merits; most of Linux is not well-proven to be correct, only believed to be correct under typical operating conditions as estimated by several dozen experienced programmers, and any technical options for improving our confidence in its correctness should be considered.

Also, finally, I have to dock you for reading comprehension. Martin was quite clear: calling Rust a "cancer" -- a cute pun given Rust's crab mascot, or a dehumanizing slur, who knows -- was, to them, a violation of the Code. It is not difficult to read the Code and notice that, were it a slur, it would violate the prohibition on "insulting/derogatory comments, and personal or political attacks."

[–] [email protected] 9 points 3 days ago (1 children)

Your position is entirely reasonable and an excellent example of how ignoring technical details leads to failures of technical leadership.

That's why I didn't address the technical merits, like a leader should. (Nor I am a leader; I'm a random with a chimp avatar.) I focused on the "popcorn" / drama.

[ Rust info dump ]

Cool beans.

What I'm saying is that Martin should be sharing this info, instead of creating drama.

Because ultimately the goal of both sides is the same, a better kernel. It's just that one prioritises consistency (for the sake of maintainability) and another the advantages of Rust over C, and those priorities are in conflict.

And if Hellwig cannot be convinced, the leadership can, and should.

Also, finally, I have to dock [to reduce wage from; to deduct points from] you for reading comprehension. Martin was quite clear: calling Rust a “cancer” [...] was, to them, a violation of the Code.

I'm saying that Martin has the moral obligation to make his complain as precise as possible: "The CoC says [insert excerpt] and Hellwig is going against that". Telling people to RTFCoC is the opposite of that. Is this clear now?

Also, this either is or isn't a violation of the CoC. There's no space for "to them", rule violations should be handled as objectively as reasonably possible. (From a quick check, it doesn't seem to be one. I might be wrong however.)

a cute pun given Rust’s crab mascot, or a dehumanizing slur, who knows

There's no room for either reading, given that

  • Hellwig shows no interest on Rust, so references to the mascot are out-of-place
  • A project is not a human being.

The immediate reading is as an analogy; cancer is known for spreading itself through tendrils, taking huge amounts of resources. If that reading is correct, Hellwig is criticising the project for not being well contained, and invading spaces that Hellwig believes that it shouldn't.

Another possible reading is "cancer" as "shit", "crap", or "rubbish"; a simple negative word.

were it a slur, it would violate the prohibition on “insulting/derogatory comments, and personal or political attacks.”

And were my cat a chicken, she would lay eggs. However my cat is not a chicken and "cancer" is not a slur.

[–] [email protected] 1 points 2 days ago (1 children)

I am not a programmer. … I’m a random with a chimp avatar. … It’s just that [Hellwig] prioritises consistency (for the sake of maintainability)…

Pick a side and stick to it. You seem very keen to endorse Hellwig's arguments despite not understanding them, and also to emit words on the topic despite not having a qualified opinion. It sounds like you want me to not take you seriously (so that I won't reply to you) and also take you seriously (so that you are counted as part of the programming public.)

I'm docking you again, this time for listening comprehension. Quoting Gaynor:

The common thread here is that for each of [six listed vulnerabilities exploited by nation-states against vulnerable minorities], the vulnerability that was executed … was only possible because of the victim's software being written in a memory-unsafe language. Put another way, if the relevant portions of these projects were written in a safe language, these vulnerabilities wouldn't have been possible.

That was early in the talk, around 6:30. Later, around 19:40, he says:

The Rust-for-Linux project is working to make it possible for people to write Linux kernel modules in Rust.

So, if you had watched Gaynor's presentation, you would understand that Rust-for-Linux is a significant and prominent part of a wider push by security professionals to improve the overall safety of common devices, like Android phones, that are in the pockets of millions of people already. And then you wouldn't be talking about respectability politics while apologizing for reactionaries who oppose that safety.

[–] [email protected] 1 points 2 days ago* (last edited 2 days ago) (1 children)

I'll put this into spoilers to reduce clutter for the others, it's a big wall of metadiscussion.

I am not a programmer. … I’m a random with a chimp avatar. … It’s just that [Hellwig] prioritises consistency (for the sake of maintainability)…

Pick a side and stick to it.

There's no "two sides" here. I'm transparently saying that what I say should not be trusted, for those two reasons (1. not a programmer, 2. not in charge of this), and I'm still voicing my opinion on this matter, while focusing on other aspects of the discussion. Is this clear now?

Note: one of those two reasons likely apply to everyone else here.

You seem very keen to endorse Hellwig’s arguments

If anything I could be blamed for the exact opposite - endorsing R4L. You don't even need to read this comment to see it, the comment that you're replying to is enough: "And if Hellwig cannot be convinced, the leadership can, and should."

Learn the difference between "talking about what others said" and "endorsing what others said".

despite not understanding them,

Assumption: "not a programmer = unable to understand what's going on". I think that I showed well through this thread this is blatantly false.

and also to emit words on the topic despite not having a qualified opinion

Refer to the first paragraph.

It's also relevant to note that, most likely, nobody here has the "kwalifikashuns" to discuss this topic. Not even programmers - because odds are that nobody here is in a position to change anything about it.

It sounds like you want me to not take you seriously

Okay... so far, so good.

(so that I won’t reply to you)

*rolls eyes* assumption, again. Clearly assuming why I'm being dismissive towards you.

It has zero to do with me not wanting to be taken seriously. It's because you show blatant lack of basic reading comprehension, while still saying this "I'm docking you" cringe. For example, vomiting an info dump that does not contradict a single shred of what I said (as if it contradicted), or with a hypothetical that is clearly irrelevant ("if it was a slur" - it is not, period).

Worth noting: nobody here has in a position to "dock lol" anyone else here.

and also take you seriously (so that you are counted as part of the programming public.)

Assumption...

Quoting Gaynor: [insert quote]

Cool beans. And this does not contradict what I said, because contrariwise to what you are assuming = making shit up, I am not endorsing Hellwig's view that Rust does not belong to the kernel, I am explaining his point of view while clearly saying "okay, Rust in the kernel seems fine, based on what people said here, but Martin is creating drama".

I couldn't be arsed to read the rest of the text. Other users are able to provide information about Rust here, so I'm not missing anything, minus the cringe and assumptions.

TL;DR: stop assuming.

[–] [email protected] 1 points 1 day ago

It’s also relevant to note that, most likely, nobody here has the “kwalifikashuns” to discuss this topic. Not even programmers - because odds are that nobody here is in a position to change anything about it.

Literally any kernel hacker can change the kernel. This is the root of why you shouldn't be in the conversation; you aren't such a hacker, and you therefore imagine that none of us are, either. You're not skilled as a sealion either, for what it's worth.