Hellwig is the maintainer of the DMA subsystem. Hellwig previously blocked rust bindings for DMA code, which in part resulted in Hector Martin from stepping down as a kernel maintainer and eventually Asahi Linux as a whole.

    • @arendjr@programming.dev
      link
      fedilink
      312 days ago

      So far, the only good argument I have really seen from the ones opposing the Rust4Linux effort comes down to: adding Rust to a C codebase introduces a lot of complexity that is hard to deal with.

      But the argument offers no solution except to give up and not even attempt to address the real issues the kernel struggles with. It’s effectively a form of defeatism when you want to give up and don’t want to let others attempt to do what you don’t see as feasible.

      • I don’t know I think the argument about forcing maintainers to learn Rust is probably true - sure the Rust code might not touch the DMA code, but Linux doesn’t have stable APIs so in theory you’re supposed to be able to change an API as long as you fix all the drivers that use it.

        That now involves fixing Rust drivers, so you’re going to need to know Rust.

        However I don’t think that’s a good reason not to do it. In my opinion Linus should just be honest and say that the Rust experiment has been successful, Rust is going to be part of the kernel moving forwards, and you will probably have to get off your arse and learn it.

        All this “you won’t have to learn Rust” talk is thin reassurance to keep people happy. I don’t think anyone really believes it.

        Reminds me of when WASM was introduced and everyone was saying “the goal isn’t to replace JavaScript” to keep the JavaScript folk happy, despite everyone knowing that that was exactly the goal.

        • @FooBarrington@lemmy.world
          link
          fedilink
          231 day ago

          That now involves fixing Rust drivers, so you’re going to need to know Rust.

          The R4L approach is that C maintainers never need to touch any Rust code. They can break it all day long without paying any attention to it. This has been an essential part of the project from the start, I don’t understand how people talking about this topic still don’t understand this.

          • @azertyfun@sh.itjust.works
            link
            fedilink
            622 hours ago

            Last time around Asahi Lina (major contributor to the Apple Silicon GPU driver) made a very nice writeup on mastodon about her attempts to mainline her work.

            Part of the problem was that the C interface was straight-up broken; not only were a bunch of lifetimes undocumented, but freeing the kernel objects properly was impossible, but GCC doesn’t care and neither did anyone because GPU drivers are expected to just… never exit (IIRC). So she refactored it to be saner.

            Anyway apparently it was rejected for much the same reasons, aka Rust bashing thinly disguised as concerns over maintainability.

            Technically the R4L project did have an impact. But what’s the worst case? Spending some time on improving the C interface for an edge case? The ignominy! NAK.

            • @FizzyOrange@programming.dev
              link
              fedilink
              121 hours ago

              To be clear I fully support Rust in Linux. I just think it’s going to rapidly be impractical to work on Linux without learning Rust.

              The solution isn’t to pretend that isn’t the case; it’s to learn Rust!

          • @FizzyOrange@programming.dev
            link
            fedilink
            222 hours ago

            I do understand that that’s what they claim. I just don’t believe them. Because it requires either

            1. magical Rust maintainers who are always on call to help, or
            2. people to be on with the Rust code breaking all the time.

            Neither seems likely.

            • @FooBarrington@lemmy.world
              link
              fedilink
              115 hours ago

              What’s there not to believe? If Rust gets broken, either someone will fix it, or the kernel releases with broken Rust. Where’s the issue?

              It’s such a strange position to take.

              • @FizzyOrange@programming.dev
                link
                fedilink
                111 hours ago

                or the kernel releases with broken Rust

                This is what I don’t believe. I think what will actually happen (or could at least), is:

                C dev that refuses the learn Rust: “Hi, here’s a change to the DMA API.”

                Linus: “Can you fix the Rust code before I merge this?”

                C dev: “Ok, Rust devs it’s your job - can you fix it?”

                Rust devs: “”

                C dev: “Hello? Where are you?”

                C dev: “Can we just merge it now?”

                Linus: “No we need to fix the Rust.”

                Again, to be 100% clear, I think that this shouldn’t block Rust. We should just expect the C devs to learn a bit of Rust (seriously if they’re writing Linux DMA systems they are easily bright enough to do it). But pretending that they won’t have to to keep them happy seems disingenuous.

                • @FooBarrington@lemmy.world
                  link
                  fedilink
                  3
                  edit-2
                  10 hours ago

                  Okay? And why are you imagining things would go down like that, when the policy is specifically not doing it this way? When this issue hasn’t occurred so far?

                  Rust is disabled by default, so it’s not like it would be harder to build a kernel when it’s broken. Seriously, I just don’t get why you’re imagining these things.

                  • @FizzyOrange@programming.dev
                    link
                    fedilink
                    15 hours ago

                    And why are you imagining things would go down like that

                    Because I am familiar with human behaviour.

                    Rust is disabled by default

                    I’m not too familiar with Linux’s CI system but I assume they at least test that it compiles, even if it is disabled by default.

        • @arendjr@programming.dev
          link
          fedilink
          131 day ago

          That now involves fixing Rust drivers, so you’re going to need to know Rust.

          I also don’t think the latter follows from the former. You can continue to not know Rust as long as you’re willing to work with those that can. Problems only start if you’re unwilling to collaborate.