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

  • Lvxferre [he/him]@mander.xyz
    link
    fedilink
    arrow-up
    53
    arrow-down
    4
    ·
    edit-2
    2 days ago

    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.

    • pressanykeynow@lemmy.world
      link
      fedilink
      arrow-up
      9
      ·
      1 day ago

      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?

      • Lvxferre [he/him]@mander.xyz
        link
        fedilink
        arrow-up
        4
        ·
        19 hours 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.

    • BatmanAoD@programming.dev
      link
      fedilink
      arrow-up
      25
      arrow-down
      1
      ·
      2 days ago

      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.

      • Lvxferre [he/him]@mander.xyz
        link
        fedilink
        arrow-up
        7
        arrow-down
        6
        ·
        2 days ago

        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.

        • BatmanAoD@programming.dev
          link
          fedilink
          arrow-up
          12
          ·
          2 days ago

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

          • Lvxferre [he/him]@mander.xyz
            link
            fedilink
            arrow-up
            3
            ·
            edit-2
            1 day ago

            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.

            • BatmanAoD@programming.dev
              link
              fedilink
              arrow-up
              4
              ·
              1 day ago

              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.

              • Lvxferre [he/him]@mander.xyz
                link
                fedilink
                arrow-up
                1
                ·
                edit-2
                19 hours 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?

      • Lvxferre [he/him]@mander.xyz
        link
        fedilink
        arrow-up
        1
        ·
        16 hours ago

        That doesn’t seem to be the case. At least, not from the Rust4Linux devs’ side (dunno about Martin, but he’s no kernel dev).

      • BatmanAoD@programming.dev
        link
        fedilink
        arrow-up
        12
        arrow-down
        1
        ·
        1 day ago

        Christoph Hellwig isn’t criticizing Rust the language, and Hector Martin isn’t claiming that he is. This is about a project, Rust for Linux, that has been endorsed by both Linus and GKH, and one maintainer personally attempting to stop it from moving forward.

        • FizzyOrange@programming.dev
          link
          fedilink
          arrow-up
          5
          ·
          1 day ago

          He did call it a “shiny language of the day”. That’s criticism. He’s saying the popularity of Rust is due to temporary hype rather than because it is intrinsically good.

          • BatmanAoD@programming.dev
            link
            fedilink
            arrow-up
            5
            ·
            1 day ago

            Eh, he also said “While not my favourite language it’s definitively one of the best new ones and I encourage people to use it for new projects where it fits.”

    • Corbin@programming.dev
      link
      fedilink
      English
      arrow-up
      5
      arrow-down
      6
      ·
      2 days ago

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

      • Lvxferre [he/him]@mander.xyz
        link
        fedilink
        arrow-up
        9
        arrow-down
        1
        ·
        2 days ago

        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.

        • Corbin@programming.dev
          link
          fedilink
          English
          arrow-up
          1
          ·
          22 hours ago

          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.

          • Lvxferre [he/him]@mander.xyz
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            21 hours ago
            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.