rust-for-linux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Danilo Krummrich <dakr@kernel.org>,
	Christoph Hellwig <hch@infradead.org>,
	Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>,
	rust-for-linux <rust-for-linux@vger.kernel.org>,
	Greg KH <gregkh@linuxfoundation.org>,
	David Airlie <airlied@gmail.com>,
	linux-kernel@vger.kernel.org, ksummit@lists.linux.dev
Subject: Re: Rust kernel policy
Date: Wed, 26 Feb 2025 12:05:54 -0400	[thread overview]
Message-ID: <20250226160554.GA33931@nvidia.com> (raw)
In-Reply-To: <CAHk-=wie_Winz7CtRCM62S2b1pWKN2Jt2wdGHgFBv=aBU8qwqg@mail.gmail.com>

On Sun, Feb 23, 2025 at 10:31:49AM -0800, Linus Torvalds wrote:
> On Sun, 23 Feb 2025 at 10:03, Laurent Pinchart
> <laurent.pinchart@ideasonboard.com> wrote:
> >
> >   > I can't answer for Linus, sorry.  But a generic "hey, this broke our
> >   > working toolchain builds" is something that is much much much
> >   > different than "an api changed so I now have to turn off this driver
> >   > in my build" issue.
> >
> >   I haven't found a clear statement from Linus on this topic.
> >
> > Those three statements can't all be true together, we can at best have
> > two. I would like to understand which one we will drop first, and I
> > believe many other developers and maintainers are wondering the same.

> Yes, linux-next is supposed to catch interactions between different
> development trees. And yes, various build bots test different
> configurations. But nothing is ever perfect, and you really shouldn't
> expect it to be.

There are two "break" issues:
 1) Does rc1 work on a given system? We discussed this at the
    maintainer summit, and I think the consensus was it is sad it is
    broken so much but no changes were proposed. i386 being broken
    is this type of problem.

 2) Does Linus accept a PR from the maintainer? This is what I think
    Laurent is driving at. AFAIK Linus accepting a PR at least
    requires it passes your build test and boots your test machine(s).

IMHO, when a PR is rejected it is a big emergency for maintainers.
They carry the responsibility for all their submitters to get things
merged each cycle. Just dropping a whole PR is not an option.

So, this last cycle, Andrew rebased & dropped 6 patches from Uros and
resent his PR so all the other work got merged. Uros respun them based
on the discussion with you but Andrew didn't pick them up till after
the merge window (now commit eaac384d7eb3/etc in -next).

This is almost fine, except IMHO Andrew, should be build testing Rust
as well to catch this before you did to avoid this emergency last
minute rebase/revert.

I think Laurent's message is still evidence that the messaging to
maintainers needs to be crystal clear:

 It is the top level maintainer's responsibility to send Linus PRs
 that pass a CONFIG_RUST=y x86-64 allmodconfig (?) build.

To Laurent's point, my test here:

 https://lore.kernel.org/all/20250131135421.GO5556@nvidia.com/

Demonstrates maintainers cannot fully ignore the Rust bindings when
merging changes to the bound C API. The build CONFIG_RUST=y
immediately fails, and my understanding is that is enough for you to
probably refuse the PR.

Thus, at a minimum, the maintainer must track this and ensure things
are resolved *somehow* before sending the PR. [1]

The fact you have been seeing so few Rust breaks says that the
affected maintainers are already doing this. For instance Andreas
explains how he has been working to keep block's PR to you building:

 https://lore.kernel.org/all/87frkfv8eu.fsf@kernel.org/

Some examples of his work:
 31d813a3b8cb ("rust: block: fix use of BLK_MQ_F_SHOULD_MERGE")
 5b026e341207 ("rust: block: fix generated bindings after refactoring of features")
 5ddb88f22eb9 ("rust: block: do not use removed queue flag API")

IMHO, maintainers are smart people, tell them clearly this is what
they need to do and they will figure it out. None of this is
especially new or particularly different from what people are already
doing.

I keep going back to this topic because there really is alot of
confusing messaging out there. For instance I wrote this same
essential guideline earlier and I belive I was told it is not the
policy. I'm glad to see Miguel's latest policy document is clearer,
but I think it could be even more specific.

Regards,
Jason

1 - Laurent, I think the seeming conflict between "things are allowed
to break" and "Linus must get PRs that build CONFIG_RUST=y" should be
understood as meaning bisection safety is not required for Rust. Ie
per the block methodology there are commits in the PRs that fail
CONFIG_RUST=y builds. However, Jens must ensure it is fixed all up
somehow before sending the PR.

  reply	other threads:[~2025-02-26 16:06 UTC|newest]

Thread overview: 183+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-09 20:56 Rust kernel policy Miguel Ojeda
2025-02-18 16:08 ` Christoph Hellwig
2025-02-18 16:35   ` Jarkko Sakkinen
2025-02-18 16:39     ` Jarkko Sakkinen
2025-02-18 18:08       ` Jarkko Sakkinen
2025-02-18 21:22         ` Boqun Feng
2025-02-19  6:20           ` Jarkko Sakkinen
2025-02-19  6:35             ` Dave Airlie
2025-02-19 11:37               ` Jarkko Sakkinen
2025-02-19 13:25                 ` Geert Uytterhoeven
2025-02-19 13:40                   ` Jarkko Sakkinen
2025-02-19  7:05             ` Boqun Feng
2025-02-19 11:32               ` Jarkko Sakkinen
2025-02-18 17:36   ` Jiri Kosina
2025-02-20  6:33     ` Christoph Hellwig
2025-02-20 18:40       ` Alexei Starovoitov
2025-02-18 18:46   ` Miguel Ojeda
2025-02-18 21:49     ` H. Peter Anvin
2025-02-18 22:38       ` Dave Airlie
2025-02-18 22:54       ` Miguel Ojeda
2025-02-19  0:58         ` H. Peter Anvin
2025-02-19  3:04           ` Boqun Feng
2025-02-19  5:07             ` NeilBrown
2025-02-19  5:39             ` Greg KH
2025-02-19 15:05               ` Laurent Pinchart
2025-02-20 20:49                 ` Lyude Paul
2025-02-21 19:24                   ` Laurent Pinchart
2025-02-20  7:03               ` Martin Uecker
2025-02-20  7:10                 ` Greg KH
2025-02-20  8:57                   ` Martin Uecker
2025-02-20 13:46                     ` Dan Carpenter
2025-02-20 14:09                       ` Martin Uecker
2025-02-20 14:38                         ` H. Peter Anvin
2025-02-20 15:25                         ` Dan Carpenter
2025-02-20 15:49                         ` Willy Tarreau
2025-02-22 15:30                         ` Kent Overstreet
2025-02-20 14:53                     ` Greg KH
2025-02-20 15:40                       ` Martin Uecker
2025-02-21  0:46                         ` Miguel Ojeda
2025-02-21  9:48                         ` Dan Carpenter
2025-02-21 16:28                           ` Martin Uecker
2025-02-21 17:43                             ` Steven Rostedt
2025-02-21 18:07                               ` Linus Torvalds
2025-02-21 18:19                                 ` Steven Rostedt
2025-02-21 18:31                                 ` Martin Uecker
2025-02-21 19:30                                   ` Linus Torvalds
2025-02-21 19:59                                     ` Martin Uecker
2025-02-21 20:11                                       ` Linus Torvalds
2025-02-22  7:20                                         ` Martin Uecker
2025-02-21 22:24                                     ` Steven Rostedt
2025-02-21 23:04                                       ` Linus Torvalds
2025-02-22 17:53                                         ` Kent Overstreet
2025-02-22 18:44                                           ` Linus Torvalds
2025-02-23 16:42                                         ` David Laight
2025-02-22 18:42                                       ` Linus Torvalds
2025-02-22  9:45                                   ` Dan Carpenter
2025-02-22 10:25                                     ` Martin Uecker
2025-02-22 11:07                                       ` Greg KH
2025-02-21 18:23                               ` Martin Uecker
2025-02-21 22:14                                 ` Steven Rostedt
2025-03-01 13:22                             ` Askar Safin
2025-03-01 13:55                               ` Martin Uecker
2025-03-02  6:50                               ` Kees Cook
2025-02-21 18:11                           ` Theodore Ts'o
2025-02-24  8:12                             ` Dan Carpenter
2025-02-20 22:08                     ` Paul E. McKenney
2025-02-22 23:42                     ` Piotr Masłowski
2025-02-23  8:10                       ` Martin Uecker
2025-02-23 23:31                       ` comex
2025-02-24  9:08                         ` Ventura Jack
2025-02-24 18:03                           ` Martin Uecker
2025-02-20 12:28               ` Jan Engelhardt
2025-02-20 12:37                 ` Greg KH
2025-02-20 13:23                   ` H. Peter Anvin
2025-02-20 13:51                     ` Willy Tarreau
2025-02-20 15:17                     ` C aggregate passing (Rust kernel policy) Jan Engelhardt
2025-02-20 16:46                       ` Linus Torvalds
2025-02-20 20:34                       ` H. Peter Anvin
2025-02-21  8:31                       ` HUANG Zhaobin
2025-02-21 18:34                       ` David Laight
2025-02-21 19:12                         ` Linus Torvalds
2025-02-21 20:07                           ` comex
2025-02-21 21:45                           ` David Laight
2025-02-22  6:32                             ` Willy Tarreau
2025-02-22  6:37                               ` Willy Tarreau
2025-02-22  8:41                                 ` David Laight
2025-02-22  9:11                                   ` Willy Tarreau
2025-02-21 20:06                         ` Jan Engelhardt
2025-02-21 20:23                           ` Laurent Pinchart
2025-02-21 20:24                             ` Laurent Pinchart
2025-02-21 22:02                             ` David Laight
2025-02-21 22:13                               ` Bart Van Assche
2025-02-22  5:56                                 ` comex
2025-02-21 20:26                           ` Linus Torvalds
2025-02-20 22:13               ` Rust kernel policy Paul E. McKenney
2025-02-21  5:19               ` Felipe Contreras
2025-02-21  5:36                 ` Boqun Feng
2025-02-21  5:59                   ` Felipe Contreras
2025-02-21  7:04                     ` Dave Airlie
2025-02-24 20:27                       ` Felipe Contreras
2025-02-24 20:37                     ` Boqun Feng
2025-02-26  2:42                       ` Felipe Contreras
2025-02-22 16:04               ` Kent Overstreet
2025-02-22 17:10                 ` Ventura Jack
2025-02-22 17:34                   ` Kent Overstreet
2025-02-23  2:08                 ` Bart Van Assche
2025-02-19  5:53             ` Alexey Dobriyan
2025-02-19  5:59           ` Dave Airlie
2025-02-22 18:46             ` Kent Overstreet
2025-02-19 12:37           ` Miguel Ojeda
2025-02-20 11:26       ` Askar Safin
2025-02-20 12:33       ` vpotach
2025-02-19 18:52     ` Kees Cook
2025-02-19 19:08       ` Steven Rostedt
2025-02-19 19:17         ` Kees Cook
2025-02-19 20:27           ` Jason Gunthorpe
2025-02-19 20:46             ` Steven Rostedt
2025-02-19 20:52               ` Bart Van Assche
2025-02-19 21:07                 ` Steven Rostedt
2025-02-20 16:05                   ` Jason Gunthorpe
2025-02-20  8:13                 ` Jarkko Sakkinen
2025-02-20  8:16                   ` Jarkko Sakkinen
2025-02-20 11:57                   ` Fiona Behrens
2025-02-20 14:07                     ` Jarkko Sakkinen
2025-02-21 10:19                       ` Jarkko Sakkinen
2025-02-22 12:10                         ` Miguel Ojeda
2025-03-04 11:17                       ` Fiona Behrens
2025-03-04 17:48                         ` Jarkko Sakkinen
2025-02-20  9:55                 ` Leon Romanovsky
2025-02-19 19:33       ` H. Peter Anvin
2025-02-20  6:32         ` Alexey Dobriyan
2025-02-20  6:53           ` Greg KH
2025-02-20  8:44             ` Alexey Dobriyan
2025-02-20 13:53             ` Willy Tarreau
2025-02-20 16:04             ` Jason Gunthorpe
2025-02-20 12:01           ` H. Peter Anvin
2025-02-20 12:13             ` H. Peter Anvin
2025-02-20 23:42         ` Miguel Ojeda
2025-02-22 15:21           ` Kent Overstreet
2025-02-20  6:42     ` Christoph Hellwig
2025-02-20 23:44       ` Miguel Ojeda
2025-02-21 15:24         ` Simona Vetter
2025-02-22 12:10           ` Miguel Ojeda
2025-02-26 13:17           ` Fiona Behrens
2025-02-21  0:39       ` Linus Torvalds
2025-02-21 12:16         ` Danilo Krummrich
2025-02-21 15:59           ` Steven Rostedt
2025-02-23 18:03           ` Laurent Pinchart
2025-02-23 18:31             ` Linus Torvalds
2025-02-26 16:05               ` Jason Gunthorpe [this message]
2025-02-26 19:32                 ` Linus Torvalds
2025-02-19  8:05   ` Dan Carpenter
2025-02-19 14:14     ` James Bottomley
2025-02-19 14:30       ` Geert Uytterhoeven
2025-02-19 14:46       ` Martin K. Petersen
2025-02-19 14:51         ` Bartosz Golaszewski
2025-02-19 15:15         ` James Bottomley
2025-02-19 15:33           ` Willy Tarreau
2025-02-19 15:45             ` Laurent Pinchart
2025-02-19 15:46             ` James Bottomley
2025-02-19 15:56               ` Willy Tarreau
2025-02-19 16:07                 ` Laurent Pinchart
2025-02-19 16:15                   ` Willy Tarreau
2025-02-19 16:32                     ` Laurent Pinchart
2025-02-19 16:34                       ` Willy Tarreau
2025-02-19 16:33                     ` Steven Rostedt
2025-02-19 16:47                       ` Andrew Lunn
2025-02-19 18:22                       ` Jarkko Sakkinen
2025-02-20  6:26                       ` Alexey Dobriyan
2025-02-20 15:37                         ` Steven Rostedt
2025-02-19 17:00           ` Martin K. Petersen
2025-02-19 15:13       ` Steven Rostedt
2025-02-19 14:05   ` James Bottomley
2025-02-19 15:08     ` Miguel Ojeda
2025-02-19 16:03       ` James Bottomley
2025-02-19 16:44         ` Miguel Ojeda
2025-02-19 17:06           ` Theodore Ts'o
2025-02-20 23:40             ` Miguel Ojeda
2025-02-22 15:03             ` Kent Overstreet
2025-02-20 16:03           ` James Bottomley
2025-02-20 23:47             ` Miguel Ojeda
2025-02-20  6:48         ` Christoph Hellwig
2025-02-20 12:56           ` James Bottomley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250226160554.GA33931@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=airlied@gmail.com \
    --cc=dakr@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hch@infradead.org \
    --cc=ksummit@lists.linux.dev \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=miguel.ojeda.sandonis@gmail.com \
    --cc=rust-for-linux@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).