all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Mark H Weaver <mhw@netris.org>
To: Andreas Enge <andreas@enge.fr>
Cc: guix-devel@gnu.org
Subject: Re: Kernel modules in initrd
Date: Thu, 22 Feb 2018 17:01:11 -0500	[thread overview]
Message-ID: <87eflck7ko.fsf@netris.org> (raw)
In-Reply-To: <20180222211707.GB9758@jurong> (Andreas Enge's message of "Thu, 22 Feb 2018 22:17:07 +0100")

Hi Andreas,

Andreas Enge <andreas@enge.fr> writes:

> recently I had an unpleasant experience in installing GuixSD: After booting
> with the USB key and following the installation instructions, then rebooting
> into the installed system, the "/" file system was not found: neither using
> file system labels, nor device nodes.
>
> The problem turned out to be that the disk of the machine needed special
> kernel modules, and adding
>   (initrd (lambda (file-systems . rest)
>             (apply base-initrd file-systems
>                    #:extra-modules '("mptbase" "mptsas" "mptscsih")
>                                    rest)))
> to the operating-system declaration solved the problem.
> However, it took us quite some time and several trials to diagnose the
> problem in the first place.
>
> So I wonder:
> 1) Could we add more kernel modules to the base-initrd, whenever people
>    report that new ones are needed? For instance, the berlin server has
>    modules (list "megaraid_sas" "libsas" "scsi_transport_sas").

We need a better system for dealing with this.

I don't think that loading every kernel module that any GuixSD user ever
needed during the early boot process is a good approach.  To make
matters worse, it's easy for a user to add modules to their initrd, but
there's no easy way to remove modules from the default set.

I don't want *every* GuixSD user to unconditionally load, into their
kernels during early boot, code to support LSI MegaRAID SAS cards, just
because there exists one GuixSD user out there who needs it.

Every extra loaded kernel module means more RAM usage in the kernel, a
larger initrd image that must be loaded by possibly slow bootloaders,
and code complexity in the running kernel, leading to a greater attack
surface for possible security exploits.  For example, last year some
memory corruption bugs were found in the LSI MegaRAID SAS module.  See
<https://patchwork.kernel.org/patch/9585337/>.

To make this easier, I think the right approach is to include many
modules like these to our installation image initrd, and then to
automatically detect which modules are needed for booting.  A future
easy installer could automatically add those modules to the OS config,
but in the meantime we could simply print a message recommending that
the user should add the needed modules to their initrd config.

What do you think?

      Mark

  parent reply	other threads:[~2018-02-22 22:01 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-22 21:17 Kernel modules in initrd Andreas Enge
2018-02-22 21:29 ` Jan Nieuwenhuizen
2018-02-22 21:44   ` Danny Milosavljevic
2018-02-22 21:34 ` Danny Milosavljevic
2018-02-22 21:50   ` [PATCH] linux-initrd: Add ATA and SAS modules to the default set of modules Danny Milosavljevic
2018-02-27 15:03     ` Ludovic Courtès
2018-02-22 21:53   ` Kernel modules in initrd Andreas Enge
2018-02-22 22:01 ` Mark H Weaver [this message]
2018-02-23  1:00   ` Danny Milosavljevic
2018-02-23 14:28     ` Danny Milosavljevic
2018-02-23 23:02       ` Andreas Enge
2018-02-25 11:43         ` Danny Milosavljevic
2018-02-26 15:20           ` Ludovic Courtès
2018-02-26 16:26             ` Danny Milosavljevic
2018-02-27 15:02               ` Ludovic Courtès
2018-02-27 19:32                 ` Danny Milosavljevic
2018-02-27 20:52                   ` Danny Milosavljevic
2018-02-28 21:49                     ` Ludovic Courtès
2018-02-23 22:39   ` Ludovic Courtès
2018-02-24  8:28     ` ng0
2018-02-27 15:04       ` Ludovic Courtès

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=87eflck7ko.fsf@netris.org \
    --to=mhw@netris.org \
    --cc=andreas@enge.fr \
    --cc=guix-devel@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 external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.