public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andreas Hindborg <a.hindborg@kernel.org>
To: "Greg KH" <gregkh@linuxfoundation.org>
Cc: "Miguel Ojeda" <ojeda@kernel.org>,
	"Alex Gaynor" <alex.gaynor@gmail.com>,
	"Boqun Feng" <boqun.feng@gmail.com>,
	"Gary Guo" <gary@garyguo.net>,
	"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
	"Benno Lossin" <benno.lossin@proton.me>,
	"Alice Ryhl" <aliceryhl@google.com>,
	"Masahiro Yamada" <masahiroy@kernel.org>,
	"Nathan Chancellor" <nathan@kernel.org>,
	"Nicolas Schier" <nicolas@fjasle.eu>,
	"Trevor Gross" <tmgross@umich.edu>,
	"Adam Bratschi-Kaye" <ark.email@gmail.com>,
	rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-kbuild@vger.kernel.org, "Jens Axboe" <axboe@kernel.dk>
Subject: Re: [PATCH v3 0/4] rust: extend `module!` macro with integer parameter support
Date: Mon, 16 Dec 2024 10:51:53 +0100	[thread overview]
Message-ID: <87h674c5vq.fsf@kernel.org> (raw)
In-Reply-To: <2024121344-excusably-resurrect-d01a@gregkh> (Greg KH's message of "Fri, 13 Dec 2024 17:05:46 +0100")

"Greg KH" <gregkh@linuxfoundation.org> writes:

> On Fri, Dec 13, 2024 at 04:38:30PM +0100, Andreas Hindborg wrote:
>> "Greg KH" <gregkh@linuxfoundation.org> writes:
>> > On Fri, Dec 13, 2024 at 01:24:42PM +0100, Andreas Hindborg wrote:
>> >> "Greg KH" <gregkh@linuxfoundation.org> writes:
>> >> > On Fri, Dec 13, 2024 at 12:30:45PM +0100, Andreas Hindborg wrote:
>> I'm not getting a clear reading on the following, perhaps you can
>> clarify:
>>
>>  - Is the community aligned on dropping module parameters for all new
>>    drivers?
>>    - If so, was this decided upon at some point or is this a fluid
>>      decision that is just manifesting now?
>
> It's something that I've been saying in review comments of drivers for
> many many years now.  Again, it was one of the main reasons we created
> configfs and sysfs all those decades ago, because module parameters just
> do not work properly for drivers in almost all cases.

Thinking a bit about this - are you sure there are no situations where
module parameters is actually the right choice? I could imagine deeply
embedded deployments, potentially with all required modules linked in to
a static kernel image. It is probably desirable to be able to pass
configuration to the modules via the kernel command line in this
situation. If not for configuration in the field, then for a development
situation.

Surely there are also situations in regular PC setups where it is
desirable to pass configuration data to a module, so that it is
available at load time. With configfs, module initialization becomes a
two stage process of first loading and then configuring. That is not
always what you would want.

Since module parameters actually do show up in sysfs as writable
entries, when the right flags are passed, they do feel very similar to
sysfs/configfs for simple use cases. What are the reasons they should
not be usable for these simple use cases?

>
>>  - Does this ban of module parameters also cover cases where backwards
>>    compatibility is desirable?
>
> No, we don't break existing kernel features, but if you are writing a
> new driver, don't add them and then there's no compatibility issue.
>
> We don't normally allow "rewrites" of drivers, but if we do, yes, you
> would have to implement the old features if needed.
>
> As you just seem to want to write an "example" block driver, no need to
> add the module option there, just do it right this time in how to
> properly configure things.
>
>>  - Can we merge this so I can move forward at my current projected
>>    course, or should I plan on dealing with not having this available?
>
> We generally do not want to merge apis without any real users, as it's
> hard to justify them, right?  Also, we don't even know if they work
> properly or not.

While null_blk is just a piece of testing infrastructure that you would
not deploy in a production environment, it is still a "real user". I am
sure we can agree on the importance of testing.

The exercise I am undertaking is to produce a drop in replacement of the
existing C null_blk driver. If all goes well, we are considering to swap
the C implementation for the Rust implementation in X number of years.
Granted - a lot of things have to fall into place for that to happen,
but that is the plan. This plan does not really work well if the two
modules do not have the same interface.

I understand that you would like to phase out module parameters, but I
don't think blocking their use from Rust is the right way to go about
that task. If you really feel that module parameters have no place in
new drivers, I would suggest that to be part of review process for each
individual new driver - not at the stage of enabling module parameters
for Rust in general.


Best regards,
Andreas Hindborg




  reply	other threads:[~2024-12-16  9:52 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <xK59-BGgPeRPn4PEeT498C5hexwXQ1H5sDle5WuMs3OtTzS0cA4NTRiBh1zLr_4p6o64eXKYOlEka_xzUHG5jA==@protonmail.internalid>
2024-12-13 11:30 ` [PATCH v3 0/4] rust: extend `module!` macro with integer parameter support Andreas Hindborg
2024-12-13 11:30   ` [PATCH v3 1/4] rust: str: implement `PartialEq` for `BStr` Andreas Hindborg
2024-12-13 12:49     ` Alice Ryhl
2024-12-13 11:30   ` [PATCH v3 2/4] rust: str: implement `strip_prefix` " Andreas Hindborg
2024-12-13 11:30   ` [PATCH v3 3/4] rust: str: add radix prefixed integer parsing functions Andreas Hindborg
2024-12-13 11:30   ` [PATCH v3 4/4] rust: add parameter support to the `module!` macro Andreas Hindborg
2024-12-13 11:46     ` Greg KH
2024-12-13 12:42       ` Andreas Hindborg
2024-12-13 12:54     ` Miguel Ojeda
2024-12-13 13:17       ` Andreas Hindborg
2024-12-13 17:14         ` Miguel Ojeda
2025-01-08 12:45           ` Andreas Hindborg
2025-01-08 13:17             ` Alice Ryhl
2025-01-08 13:43             ` Miguel Ojeda
2025-01-08 14:20               ` Andreas Hindborg
2024-12-13 11:43   ` [PATCH v3 0/4] rust: extend `module!` macro with integer parameter support Greg KH
2024-12-13 12:24     ` Andreas Hindborg
2024-12-13 12:48       ` Alice Ryhl
2024-12-13 12:57         ` Andreas Hindborg
2024-12-17 14:09           ` Simona Vetter
2024-12-13 14:23       ` Greg KH
2024-12-13 15:38         ` Andreas Hindborg
2024-12-13 16:05           ` Greg KH
2024-12-16  9:51             ` Andreas Hindborg [this message]
2024-12-16 12:14               ` Greg KH
2024-12-16 12:23                 ` Greg KH
2024-12-16 13:02                   ` Andreas Hindborg
2024-12-16 13:02                 ` Andreas Hindborg
2024-12-16 14:43                   ` Jens Axboe
2024-12-16 15:03                     ` Greg KH
2024-12-16 15:08                       ` Jens Axboe
2024-12-16 15:39                         ` Miguel Ojeda
2024-12-16 15:48                           ` Miguel Ojeda
2024-12-18  2:16                             ` Josh Triplett
2024-12-13 12:28   ` Andreas Hindborg
2024-12-13 19:41     ` Luis Chamberlain

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=87h674c5vq.fsf@kernel.org \
    --to=a.hindborg@kernel.org \
    --cc=alex.gaynor@gmail.com \
    --cc=aliceryhl@google.com \
    --cc=ark.email@gmail.com \
    --cc=axboe@kernel.dk \
    --cc=benno.lossin@proton.me \
    --cc=bjorn3_gh@protonmail.com \
    --cc=boqun.feng@gmail.com \
    --cc=gary@garyguo.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=masahiroy@kernel.org \
    --cc=nathan@kernel.org \
    --cc=nicolas@fjasle.eu \
    --cc=ojeda@kernel.org \
    --cc=rust-for-linux@vger.kernel.org \
    --cc=tmgross@umich.edu \
    /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