From: Brice Waegeneire <brice@waegenei.re>
To: Danny Milosavljevic <dannym@scratchpost.org>
Cc: ludo@gnu.org, 40274@debbugs.gnu.org
Subject: [bug#40274] [PATCH v5] gnu: Add kernel-module-loader-service.
Date: Thu, 02 Apr 2020 17:13:05 +0000 [thread overview]
Message-ID: <2b32956fc10fd3012388722e1b00ce21@waegenei.re> (raw)
In-Reply-To: <20200402155640.121e4879@scratchpost.org>
On 2020-04-02 13:56, Danny Milosavljevic wrote:
> Hi Brice,
>
> I wonder how common it is to pass arguments to the modules explicitly
> in normal
> operation.
>
> I haven't done it often even in other distributions--and I'm a kernel
> hacker.
>
> See also https://linux.die.net/man/5/modprobe.d for an alternative.
>
> I'm not necessarily against doing it like you do it, but just want to
> bring up
> the possibility of just omitting the functionality and let it be
> someone-else's-problem, possibly another guix service that prepares
> /etc/modprobe.d with module options and other things (aliases,
> installation and
> removal invocations).
>
> That's also important because Linux tries to (lazy-)autoload modules
> whenever
> possible (via invoking modprobe). In that case, the argument handling
> would
> be inconsistent between if it was lazy-autoloaded compared to if it was
> loaded
> by your loader.
>
> (I even wonder if it were better for kernel-module-loader-service to
> read the
> modprobe to use from /proc/sys/kernel/modprobe in order to make the
> situations
> a little more consistent)
>
> For example let's say the following happened:
>
> (1) Linux boots up.
> (2) Someone accesses some device so "modprobe foo" is invoked by Linux.
> (3) foo is loaded, gets options from /etc/modprobe.d (usually none).
> [Time passes, other stuff happens]
> (4) Your kernel-module-loader-service is started, invokes "modprobe foo
> x=2".
> (5) x=2 is not passed to the Linux kernel module ever.
>
> I'm just saying maybe not invite this kind of trouble in the first
> place.
>
> I don't think it fits Guix's declarative configuration style to do that
> either.
>
> Also, when reconfiguring the Guix system, kernel-module-loader-service
> won't
> unload the kernel modules and thus also wouldn't load it with new
> options.
>
> Also, it could happen that two different guix services require the same
> module
> but with different options. That's an insane problem to have and I
> wouldn't
> try to support it.
>
> (I've reviewed your patch, otherwise OK!)
Hello Danny,
Thank for taking the time to review this patch. Since I'm definitely
*not*
a kernel hacker --just a casual user-- I wasn't aware of the uselessness
of
specifying the module arguments to modprobe in such service. I wrote
this
patch just to load this pesky non auto-loading `ddcci-backlight` module
and
I have no current use of specifying module arguments. I just thought it
*could* be useful, to some, to pass arguments to modprobe since it is
present in its API; but the edge-cases you brought up show that it
wasn't a
good idea after all.
Should I just go back to the first format, with just a list of module
names, and we merge this patch? Or would it be better, regarding the
user
interface, to start this patch anew by using `modprobe.d` API as a base.
By that I mean defining a `modprobe-service-type` which populates
`/etc/modprobe.d/` and can manually load a module at boot if needed
(like
kernel-module-loader does)? Would it be overkill? Following is an
example of
what such service could look like:
#+begin_src scheme
(service modprobe-service-type
(list (modprobe-entry
(module "ddcci")
(load? #t)
(options '("dyndbg" "delay=120"))
(alises '("ddc/ci"))
(install "") ; default
(remove "")) ; default
(modprobe-entry
(module "acpi-call")
(blacklist? #t))))
#+end_src
- Brice
next prev parent reply other threads:[~2020-04-02 17:14 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-28 13:59 [bug#40274] [PATCH] gnu: Add kernel-module-loader-service Brice Waegeneire
2020-03-28 20:51 ` Mathieu Othacehe
2020-03-31 17:22 ` Brice Waegeneire
2020-03-31 17:19 ` [bug#40274] [PATCH v2] " Brice Waegeneire
2020-03-31 20:00 ` [bug#40274] [PATCH v3] " Brice Waegeneire
2020-03-31 20:10 ` [bug#40274] [PATCH] " Nicolò Balzarotti
2020-03-31 20:25 ` Brice Waegeneire
2020-03-31 20:23 ` [bug#40274] [PATCH v4] " Brice Waegeneire
2020-04-01 13:30 ` Mathieu Othacehe
2020-04-01 14:38 ` Brice Waegeneire
2020-04-01 19:34 ` pelzflorian (Florian Pelz)
2020-04-01 19:43 ` pelzflorian (Florian Pelz)
2020-04-01 19:48 ` pelzflorian (Florian Pelz)
2020-04-02 12:40 ` Brice Waegeneire
2020-04-03 13:03 ` pelzflorian (Florian Pelz)
2020-04-02 12:37 ` [bug#40274] [PATCH v5] " Brice Waegeneire
2020-04-02 13:56 ` Danny Milosavljevic
2020-04-02 17:13 ` Brice Waegeneire [this message]
2020-04-03 10:20 ` Danny Milosavljevic
2020-04-03 12:58 ` pelzflorian (Florian Pelz)
2020-04-04 10:51 ` Danny Milosavljevic
2020-04-04 17:58 ` Brice Waegeneire
2020-04-04 18:31 ` Danny Milosavljevic
2020-04-05 7:19 ` Brice Waegeneire
2020-04-02 14:22 ` Mathieu Othacehe
2020-04-04 15:17 ` [bug#40274] [PATCH v6 0/2] " Brice Waegeneire
2020-04-04 15:17 ` [bug#40274] [PATCH v6 1/2] services: Allow modprobe to use "/etc/modprobe.d" Brice Waegeneire
2020-04-04 15:17 ` [bug#40274] [PATCH v6 2/2] gnu: Add kernel-module-loader-service Brice Waegeneire
2020-04-04 15:53 ` Mathieu Othacehe
2020-04-04 16:09 ` pelzflorian (Florian Pelz)
2020-04-04 16:49 ` Brice Waegeneire
2020-04-04 17:46 ` pelzflorian (Florian Pelz)
2020-04-04 21:10 ` Danny Milosavljevic
2020-04-04 21:11 ` Danny Milosavljevic
2020-04-04 23:06 ` pelzflorian (Florian Pelz)
2020-04-05 7:06 ` Brice Waegeneire
2020-04-04 21:16 ` Danny Milosavljevic
2020-04-05 5:28 ` [bug#40274] [PATCH v7 0/2] " Brice Waegeneire
2020-04-05 5:28 ` [bug#40274] [PATCH v7 1/2] services: Allow modprobe to use "/etc/modprobe.d" Brice Waegeneire
2020-04-05 11:11 ` Danny Milosavljevic
2020-04-05 12:38 ` Brice Waegeneire
2020-04-05 5:28 ` [bug#40274] [PATCH v7 2/2] gnu: Add kernel-module-loader-service Brice Waegeneire
2020-04-05 10:06 ` pelzflorian (Florian Pelz)
2020-04-05 11:10 ` bug#40274: " Danny Milosavljevic
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
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2b32956fc10fd3012388722e1b00ce21@waegenei.re \
--to=brice@waegenei.re \
--cc=40274@debbugs.gnu.org \
--cc=dannym@scratchpost.org \
--cc=ludo@gnu.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.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).