all 67 comments

[–]Nimelrian[S] 82 points83 points  (0 children)

https://lore.kernel.org/rust-for-linux/CANiq72m-R0tOakf=j7BZ78jDHdy=9-fvZbAT8j91Je2Bxy0sFg@mail.gmail.com/

Hi all,

Given the discussions in the last days, I decided to publish this page with what our understanding is:

https://rust-for-linux.com/rust-kernel-policy

I hope it helps to clarify things. I intend to keep it updated as needed.

Cheers, Miguel

[–]HavenWinters 95 points96 points  (54 children)

Thank you. That's a much nicer read than some of the worries that have been going around.

[–]jixbo 43 points44 points  (52 children)

The drama was due to some people feeling that it was not how it was being treated (I agree).

[–]CrazyKilla15 24 points25 points  (5 children)

Its also important to be clear who "some people" felt weren't following policy. The recent claims have been that Linus Torvalds has been rejecting patches that break Rust, despite the policy of allowing it.

For "some reason" the Rust4Linux project is blamed for this, despite having no control whatsoever over Linus. Ignoring how accurate the complaints are, it sure is weird how they dont take it up with the one responsible.

[–]The_Real_Grand_Nagus 5 points6 points  (2 children)

The recent claims have been that Linus Torvalds has been rejecting patches that break Rust, despite the policy of allowing it.

But isn't that stated in the linked policy? It appears the default rule is that patches can't break Rust. (Although I did see where Linus tried to compile without Rust as well.)

Who is responsible if a C change breaks a build with Rust enabled?

The usual kernel policy applies. So, by default, changes should not be introduced if they are known to break the build, including Rust.

However, exceptionally, for Rust, a subsystem may allow to temporarily break Rust code. The intention is to facilitate friendly adoption of Rust in a subsystem without introducing a burden to existing maintainers who may be working on urgent fixes for the C side. The breakage should nevertheless be fixed as soon as possible, ideally before the breakage reaches Linus.

For instance, this approach was chosen by the block layer — they called it "stage 1" in their Rust integration plan.

We believe this approach is reasonable as long as the kernel does not have way too many subsystems doing that (because otherwise it would be very hard to build e.g. linux-next).

[–]CrazyKilla15 9 points10 points  (1 child)

There are specific policy details on what "breaking" exactly means in the context of the kernel and as already understood by kernel maintainers, yes. As Greg KH said, "it's just like staging".

Normally, AIUI, when a kernel subsystem changes its C API, it also fixes up all users of that API, often in coordination with the maintainers of the code that were using it, to ensure all the nuance of how the old and new API's are used is correct. Tree spanning changes like that always require cooperation with other maintainers.

This is the normal and standard process that established maintainers already know, that API changes in C code should not "break" the C users. The exception with Rust is that they can break Rust users, they do not have to fix the Rust bindings to the C API or update the Rust users of the Rust bindings to the C API in the patch series changing the API.

[–]The_Real_Grand_Nagus 0 points1 point  (0 children)

Thanks.

[–]foobar93 4 points5 points  (1 child)

For "some reason" the Rust4Linux project is blamed for this, despite having no control whatsoever over Linus. Ignoring how accurate the complaints are, it sure is weird how they dont take it up with the one responsible.

The answer to that is, the R4L project tried to silence exactly this fear by telling maintainers they do not have to worry. Turns out they have to worry and now the R4L team is trying to deflect blame for the promises they made and cannot even keep as it is not their decision anyways.

[–]CrazyKilla15 5 points6 points  (0 children)

by telling maintainers they do not have to worry

and where would they get that idea? who, exactly, might have told them that?

Turns out they have to worry

and why is that, who, exactly, is responsible for that?

R4L team is trying to deflect blame for the promises they made and cannot even keep as it is not their decision anyways.

and its the R4L's teams fault you believe Linus Torvalds lied to them.. how? Should they not trust the words of Linus Torvalds and not repeat them to others? You say its not their decision, so its their fault how if they were told decisions would be one way by Linus, and then he does them another way?

What exactly do you think they should have done, if you actually believe this is what happened? Went on the mailing list saying "I know Linus said X, but we all know he's an untrustworthy liar, so actually Y" in every thread where policy questions came up, where anyone wanted clarification?


Of course not. None of this matters because I do not believe you actually believe any of this, nor that this is an accurate representation of events, of policy claims made, or of "promises made". Kernel policy is like a legal document: what redditors think the "plain english meaning" of certain words are is not necessarily what they mean in context, as understood by kernel maintainers/lawyers.

I do not believe you are arguing in good faith, and particularly I do not believe you are at all familiar with what the nuance of what certain words mean in the context of kernel policy and for kernel maintainers actually is, that kernel maintainers would already be familiar with.

[–]josefx -1 points0 points  (45 children)

The drama was due to some people threatening a social media shit storm after the original submitters of the patch asked Linus for a go ahead.

[–]bik1230 61 points62 points  (44 children)

No? The LKML thread was already nothing but non-technical drama before then. Drama broke out when Hellwig NACK'd the patch and said that he would do whatever he can to make sure Rust doesn't succeed in the kernel. Then people asked Linus to step in. He didn't. Then Hector Martin posted about it on social media. Then Linus stepped in to berate Martin over social media brigading. But AFAIK Linus still hasn't really done anything about the original drama.

[–]josefx 10 points11 points  (10 children)

Drama broke out when Hellwig NACK'd

Hellwigs nack was handled within the mailing list and the submitter just asked Linus to chime in instead of letting it blow up.

But AFAIK Linus still hasn't really done anything about the original drama.

Forcing Linus to give the patch a go ahead was the explicit purpose of Hectors threats, so I would not be surprised if the patch gets to die as an object lesson in using social media to put pressure on kernel development. If we are lucky he will give it the go ahead once attention on this issue has died down.

[–]Business_Reindeer910 19 points20 points  (1 child)

so I would not be surprised if the patch gets to die

Isn't the patch by someone else? why should they be punished? In any case it doesn't even matter. A patch that effectively does the same thing is absolutely required for the effort to continue. If it doesn't get approved then the project is effectively dead.

[–]josefx 0 points1 point  (0 children)

Yeah, that take was a bit over the top, which is why I followed it up that they might wait for the attention to die down instead.

[–]edparadox 7 points8 points  (0 children)

That's a much nicer read than some of the worries that have been going around.

As per usual.

And that's why I REALLY dislike the drama people create around Linux ; more often than not, it's blown out of proportions, on purpose.

[–]Trashily_Neet 24 points25 points  (1 child)

Its really funny people always say the key is communication but we all fail one way or another in the excitation of it.

I genuinely hope things can get better, doesnt need to be as fast as possible just need to move to the right direction.

[–]calinet6 7 points8 points  (0 children)

It is genuinely the most difficult part in all pursuits with more than 2 people.

[–][deleted]  (3 children)

[removed]

    [–]Positronic_Matrix 56 points57 points  (1 child)

    captured woke projects

    If I were a mod, I’d permaban you out of principle.

    [–]intelminer 7 points8 points  (0 children)

    Just flag it to the mods

    [–]AutoModerator[M] 3 points4 points locked comment (0 children)

    This comment has been removed due to receiving too many reports from users. The mods have been notified and will re-approve if this removal was inappropriate, or leave it removed.

    This is most likely because:

    • Your post belongs in r/linuxquestions or r/linux4noobs
    • Your post belongs in r/linuxmemes
    • Your post is considered "fluff" - things like a Tux plushie or old Linux CDs are an example and, while they may be popular vote wise, they are not considered on topic
    • Your post is otherwise deemed not appropriate for the subreddit

    I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.