all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Danny Milosavljevic <dannym@scratchpost.org>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 30604@debbugs.gnu.org
Subject: [bug#30604] Keyboard detection before ‘cryptsetup’ runs
Date: Fri, 23 Mar 2018 14:02:31 +0100	[thread overview]
Message-ID: <20180323140231.1c96615c@scratchpost.org> (raw)
In-Reply-To: <87o9jlo28l.fsf@inria.fr>

[-- Attachment #1: Type: text/plain, Size: 3144 bytes --]

Hi Ludo,

I thought about it for a bit...

On Sun, 18 Mar 2018 16:03:06 +0100
ludo@gnu.org (Ludovic Courtès) wrote:

> One way to do that would be to have a separate thread that calls
> ‘load-needed-linux-modules’ as appropriate.  Ideally it would use
> inotify on /sys like udev does, but a poor programmer’s version could
> simply call ‘load-needed-linux-modules’ every half a second or so.
> 
> Alternately, before passing control to user code (pre-mount actions,
> etc.), we could do a “settle” kind of thing: call
> ‘load-linux-modules-from-directory’ every 0.5 seconds until its result
> is the same as before.  There’s still a risk of missing devices, and
> those devices will never show up later because nobody’s monitoring /sys.
> But then again, “udevadm settle” must have the same problem: it can’t
> really know whether things have settled, I guess.

Yes, but udevd continues running and monitoring /sys anyway - so I guess
they don't really care (if I wrote it, I'd start up the monitoring first
and then traverse /sys for modalias - and make sure the modprobe is
idempotent).

I have to say what we have to do is much more complicated than I thought
it would be - and I kinda regret starting this patchset.  I didn't
want to make it less likely for people to boot than before :-(

I suggest we find out how the other distributions do it - if they do it.

A small bit of research shows that:

- Busybox uses a loop with timeout to try to mount over and over again,
depending on bus type [2].
- Alpine coldplugs twice [1].
- Fatdog has a "waitdev" boot parameter that specifies how long it sleeps
until it tries to mount the root.
- Redhat mkinitrd has an mkinitrd option like "--with=scsi_wait_scan" which
they use after they saw a modalias starting with "scsi:" - or add the
kernel option "scsi_mod.scan=sync" to the command line [3] (but they say that
this is unreliable now and one is supposed to use udev inside the initrd).
Not sure what they do for USB.

The Linux kernel itself has a "rootdelay" parameter which
was specifically introduced because of USB devices that took 15 s (!)
to show up.

All in all, we have alternative ways to continue:

(a) Drop this patchset/feature entirely because it's too unreliable.
(b) Monitor /sys using inotify in an extra thread/process.
(c) Include udev into the initrd and have it do its thing.
(d) Monitor the netlink socket in our own thread and play udev ourselves.
(e) Find out how to, for each bus type, detect when enumeration is finished.
Find out which buses are there.  Wait for them to finish enumerating.
(f) Always modprobe usb-hid first, no matter what.  I think this would
become a whack-a-mole thing fast.

I'd prefer either (a) or (b) for reliability and simplicity.  WDYT?

(inotify is Linux-only, but so is /sys/devices :P)

[1] https://git.alpinelinux.org/cgit/abuild/tree/initramfs-init?id=9154b0d9b7251cca900f9e834ac9af9ae2ae61d9 (scan_drivers)
[2] http://lists.busybox.net/pipermail/busybox/2015-March/082688.html
[3] https://bugzilla.redhat.com/show_bug.cgi?id=466607

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2018-03-23 13:03 UTC|newest]

Thread overview: 132+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-25 11:45 [bug#30604] [PATCH 0/4] Load Linux module only when supported hardware is present Danny Milosavljevic
2018-02-25 11:48 ` [bug#30604] [PATCH 1/4] gnu: kmod: Split off kmod-minimal Danny Milosavljevic
2018-02-25 11:48   ` [bug#30604] [PATCH 2/4] gnu: Add kmod-minimal-static Danny Milosavljevic
2018-02-25 11:48   ` [bug#30604] [PATCH 3/4] linux-initrd: Add kmod Danny Milosavljevic
2018-02-25 14:05     ` Mathieu Othacehe
2018-02-25 15:07       ` Danny Milosavljevic
2018-02-26 11:51         ` Mathieu Othacehe
2018-02-25 11:48   ` [bug#30604] [PATCH 4/4] linux-boot: Load kernel modules only when the hardware is present Danny Milosavljevic
2018-02-26  1:10   ` [bug#30604] [PATCH 1/4] gnu: kmod: Split off kmod-minimal Marius Bakke
2018-02-26  3:50 ` [bug#30604] [PATCH v2 0/6] Load Linux module only when supported hardware is present Danny Milosavljevic
2018-02-26  3:50   ` [bug#30604] [PATCH v2 1/6] gnu: kmod: Split off kmod-minimal Danny Milosavljevic
2018-02-26  3:50   ` [bug#30604] [PATCH v2 2/6] gnu: Add kmod-minimal-static Danny Milosavljevic
2018-02-26  3:50   ` [bug#30604] [PATCH v2 3/6] linux-initrd: Add kmod Danny Milosavljevic
2018-02-26  3:50   ` [bug#30604] [PATCH v2 4/6] linux-boot: Load kernel modules only when the hardware is present Danny Milosavljevic
2018-02-26  3:50   ` [bug#30604] [PATCH v2 5/6] vm: Allow qemu-image builder to load Linux kernel modules Danny Milosavljevic
2018-02-26  3:50   ` [bug#30604] [PATCH v2 6/6] vm: Make the virtio-blk is uniquely identifyable in /sys Danny Milosavljevic
2018-02-26  4:06   ` [bug#30604] [PATCH v3 0/6] Load Linux module only when supported hardware is present Danny Milosavljevic
2018-02-26  4:06     ` [bug#30604] [PATCH v3 1/6] gnu: kmod: Split off kmod-minimal Danny Milosavljevic
2018-02-26  4:06     ` [bug#30604] [PATCH v3 2/6] gnu: Add kmod-minimal-static Danny Milosavljevic
2018-02-26  4:06     ` [bug#30604] [PATCH v3 3/6] linux-initrd: Add kmod Danny Milosavljevic
2018-02-26  4:06     ` [bug#30604] [PATCH v3 4/6] linux-boot: Load kernel modules only when the hardware is present Danny Milosavljevic
2018-02-27 14:26       ` Ludovic Courtès
2018-02-26  4:06     ` [bug#30604] [PATCH v3 5/6] vm: Allow qemu-image builder to load Linux kernel modules Danny Milosavljevic
2018-02-26  4:06     ` [bug#30604] [PATCH v3 6/6] vm: Make the virtio-blk is uniquely identifyable in /sys Danny Milosavljevic
2018-02-27 11:26     ` [bug#30604] [PATCH v4 0/7] Load Linux module only when supported hardware is present Danny Milosavljevic
2018-02-27 11:26       ` [bug#30604] [PATCH v4 1/7] gnu: kmod: Split off kmod-minimal Danny Milosavljevic
2018-02-27 11:26       ` [bug#30604] [PATCH v4 2/7] gnu: Add kmod-minimal-static Danny Milosavljevic
2018-02-27 11:26       ` [bug#30604] [PATCH v4 3/7] linux-initrd: Add kmod Danny Milosavljevic
2018-02-27 11:26       ` [bug#30604] [PATCH v4 4/7] linux-boot: Load kernel modules only when the hardware is present Danny Milosavljevic
2018-02-27 11:26       ` [bug#30604] [PATCH v4 5/7] vm: Allow qemu-image builder to load Linux kernel modules Danny Milosavljevic
2018-02-27 11:26       ` [bug#30604] [PATCH v4 6/7] vm: Make the virtio-blk uniquely identifyable in /sys Danny Milosavljevic
2018-02-27 11:26       ` [bug#30604] [PATCH v4 7/7] linux-boot: Call make-static-device-nodes much earlier Danny Milosavljevic
2018-02-27 15:50       ` [bug#30604] [PATCH v5 0/7] Load Linux module only when supported hardware is present Danny Milosavljevic
2018-02-27 15:50         ` [bug#30604] [PATCH v5 1/7] gnu: kmod: Split off kmod-minimal Danny Milosavljevic
2018-02-27 15:50         ` [bug#30604] [PATCH v5 2/7] gnu: Add kmod-minimal-static Danny Milosavljevic
2018-02-27 15:50         ` [bug#30604] [PATCH v5 3/7] linux-initrd: Add kmod Danny Milosavljevic
2018-02-27 15:50         ` [bug#30604] [PATCH v5 4/7] linux-boot: Load kernel modules only when the hardware is present Danny Milosavljevic
2018-02-27 15:50         ` [bug#30604] [PATCH v5 5/7] vm: Allow qemu-image builder to load Linux kernel modules Danny Milosavljevic
2018-02-27 15:50         ` [bug#30604] [PATCH v5 6/7] vm: Make the virtio-blk is uniquely identifyable in /sys Danny Milosavljevic
2018-02-27 15:50         ` [bug#30604] [PATCH v5 7/7] linux-boot: Call make-static-device-nodes much earlier Danny Milosavljevic
2018-03-02 14:16         ` [bug#30604] [PATCH v6 0/6] Load Linux module only when supported hardware is present Danny Milosavljevic
2018-03-02 14:17           ` [bug#30604] [PATCH v6 1/6] linux-modules: Add module-aliases Danny Milosavljevic
2018-03-02 14:17             ` [bug#30604] [PATCH v6 2/6] linux-modules: Add install-modules Danny Milosavljevic
2018-03-02 14:17             ` [bug#30604] [PATCH v6 3/6] linux-boot: Load kernel modules only when the hardware is present Danny Milosavljevic
2018-03-02 14:17             ` [bug#30604] [PATCH v6 4/6] vm: Allow qemu-image builder to load Linux kernel modules Danny Milosavljevic
2018-03-02 14:17             ` [bug#30604] [PATCH v6 5/6] vm: Make the virtio-blk uniquely identifiable in /sys Danny Milosavljevic
2018-03-02 14:17             ` [bug#30604] [PATCH v6 6/6] linux-initrd: Provide modprobe to the initrd Danny Milosavljevic
2018-03-02 15:34           ` [bug#30604] [PATCH v7 0/6] Load Linux module only when supported hardware is present Danny Milosavljevic
2018-03-02 15:34             ` [bug#30604] [PATCH v7 1/6] linux-modules: Add module-aliases Danny Milosavljevic
2018-03-02 16:47               ` Danny Milosavljevic
2018-03-02 15:34             ` [bug#30604] [PATCH v7 2/6] linux-modules: Add install-modules Danny Milosavljevic
2018-03-02 15:34             ` [bug#30604] [PATCH v7 3/6] linux-boot: Load kernel modules only when the hardware is present Danny Milosavljevic
2018-03-02 16:47               ` Danny Milosavljevic
2018-03-02 15:34             ` [bug#30604] [PATCH v7 4/6] vm: Allow qemu-image builder to load Linux kernel modules Danny Milosavljevic
2018-03-02 15:34             ` [bug#30604] [PATCH v7 5/6] vm: Make the virtio-blk uniquely identifiable in /sys Danny Milosavljevic
2018-03-02 15:34             ` [bug#30604] [PATCH v7 6/6] linux-initrd: Provide modprobe to the initrd Danny Milosavljevic
2018-03-03 13:55             ` [bug#30604] [PATCH v8 0/7] Load Linux module only when supported hardware is present Danny Milosavljevic
2018-03-03 13:55               ` [bug#30604] [PATCH v8 1/7] linux-modules: Add module-aliases Danny Milosavljevic
2018-03-03 21:58                 ` Ludovic Courtès
2018-03-03 13:55               ` [bug#30604] [PATCH v8 2/7] linux-modules: Add install-modules Danny Milosavljevic
2018-03-03 15:32                 ` Danny Milosavljevic
2018-03-03 22:07                 ` Ludovic Courtès
2018-03-04 12:45                   ` Danny Milosavljevic
2018-03-04 12:53                   ` Danny Milosavljevic
2018-03-03 13:55               ` [bug#30604] [PATCH v8 3/7] linux-boot: Load kernel modules only when the hardware is present Danny Milosavljevic
2018-03-03 22:48                 ` Ludovic Courtès
2018-03-04  1:06                   ` Danny Milosavljevic
2018-03-04  1:54                   ` Danny Milosavljevic
2018-03-04 12:34                   ` Danny Milosavljevic
2018-03-09 22:06                     ` Ludovic Courtès
2018-03-09 22:13                       ` Danny Milosavljevic
2018-03-09 22:19                         ` Danny Milosavljevic
2018-03-09 22:44                         ` Danny Milosavljevic
2018-03-12 12:38                         ` Ludovic Courtès
2018-03-12 12:39                           ` [bug#30604] [PATCH v10 1/6] linux-modules: Add "modules.alias" writer Ludovic Courtès
2018-03-12 12:39                             ` [bug#30604] [PATCH v10 2/6] linux-modules: Add 'load-linux-modules-from-directory' Ludovic Courtès
2018-03-12 19:26                               ` Danny Milosavljevic
2018-03-12 12:39                             ` [bug#30604] [PATCH v10 3/6] linux-modules: Add 'load-needed-linux-modules' Ludovic Courtès
2018-03-12 19:40                               ` Danny Milosavljevic
2018-03-12 21:10                                 ` Ludovic Courtès
2018-03-12 12:39                             ` [bug#30604] [PATCH v10 4/6] vm: Make the virtio-blk uniquely identifiable in /sys Ludovic Courtès
2018-03-12 12:39                             ` [bug#30604] [PATCH v10 5/6] linux-initrd: Provide our own 'modprobe' program Ludovic Courtès
2018-03-12 20:09                               ` Danny Milosavljevic
2018-03-12 21:12                                 ` Danny Milosavljevic
2018-03-13  8:54                                   ` Ludovic Courtès
2018-03-12 22:14                                 ` Ludovic Courtès
2018-03-12 22:15                                   ` [bug#30604] [PATCH v11 1/6] linux-modules: Add "modules.alias" writer Ludovic Courtès
2018-03-12 22:15                                     ` [bug#30604] [PATCH v11 2/6] linux-modules: Add 'load-linux-modules-from-directory' Ludovic Courtès
2018-03-12 22:48                                       ` Danny Milosavljevic
2018-03-12 22:15                                     ` [bug#30604] [PATCH v11 3/6] linux-modules: Add 'load-needed-linux-modules' Ludovic Courtès
2018-03-12 23:00                                       ` Danny Milosavljevic
2018-03-13  8:55                                         ` Ludovic Courtès
2018-03-12 22:15                                     ` [bug#30604] [PATCH v11 4/6] vm: Make the virtio-blk uniquely identifiable in /sys Ludovic Courtès
2018-03-12 22:49                                       ` Danny Milosavljevic
2018-03-12 22:15                                     ` [bug#30604] [PATCH v11 5/6] linux-initrd: Provide our own 'modprobe' program Ludovic Courtès
2018-03-13  8:50                                       ` Ludovic Courtès
2018-03-13  9:28                                         ` Ludovic Courtès
2018-03-13 12:28                                         ` Danny Milosavljevic
2018-03-12 22:15                                     ` [bug#30604] [PATCH v11 6/6] linux-modules: Add "modules.devname" writer Ludovic Courtès
2018-03-12 22:55                                       ` Danny Milosavljevic
2018-03-13  8:56                                         ` Ludovic Courtès
2018-03-12 22:48                                     ` [bug#30604] [PATCH v11 1/6] linux-modules: Add "modules.alias" writer Danny Milosavljevic
2018-03-13  9:27                                   ` [bug#30604] [PATCH v10 5/6] linux-initrd: Provide our own 'modprobe' program Danny Milosavljevic
2018-03-13 10:51                                     ` Ludovic Courtès
2018-03-13 12:05                                       ` Danny Milosavljevic
2018-03-13 19:17                                       ` Danny Milosavljevic
2018-03-12 12:39                             ` [bug#30604] [PATCH v10 6/6] linux-modules: Add "modules.devname" writer Ludovic Courtès
2018-03-12 19:54                             ` [bug#30604] [PATCH v10 1/6] linux-modules: Add "modules.alias" writer Danny Milosavljevic
2018-03-12 21:13                               ` Ludovic Courtès
2018-03-09 22:36                       ` [bug#30604] [PATCH v8 3/7] linux-boot: Load kernel modules only when the hardware is present Danny Milosavljevic
2018-03-03 13:55               ` [bug#30604] [PATCH v8 4/7] vm: Allow qemu-image builder to load Linux kernel modules Danny Milosavljevic
2018-03-03 13:55               ` [bug#30604] [PATCH v8 5/7] vm: Make the virtio-blk uniquely identifiable in /sys Danny Milosavljevic
2018-03-03 13:55               ` [bug#30604] [PATCH v8 6/7] linux-initrd: Provide modprobe to the initrd Danny Milosavljevic
2018-03-03 13:55               ` [bug#30604] [PATCH v8 7/7] linux-initrd: Factorize %modprobe and flat-linux-module-directory Danny Milosavljevic
2018-03-03 18:01                 ` Danny Milosavljevic
2018-03-04  1:09               ` [bug#30604] [PATCH v9 0/7] Load Linux module only when supported hardware is present Danny Milosavljevic
2018-03-04  1:09                 ` [bug#30604] [PATCH v9 1/7] linux-modules: Add "modules.devname" and "modules.alias" writer Danny Milosavljevic
2018-03-04  1:09                 ` [bug#30604] [PATCH v9 2/7] linux-modules: Add module-aliases->module-file-names Danny Milosavljevic
2018-03-04  1:09                 ` [bug#30604] [PATCH v9 3/7] linux-initrd: Provide pure-Guile modprobe Danny Milosavljevic
2018-03-11 20:24                   ` Danny Milosavljevic
2018-03-12 14:45                     ` Ludovic Courtès
2018-03-12 17:51                       ` Danny Milosavljevic
2018-03-04  1:09                 ` [bug#30604] [PATCH v9 4/7] linux-boot: Load kernel modules only when the hardware is present Danny Milosavljevic
2018-03-04  1:09                 ` [bug#30604] [PATCH v9 5/7] vm: Allow qemu-image builder to load Linux kernel modules Danny Milosavljevic
2018-03-04  1:09                 ` [bug#30604] [PATCH v9 6/7] vm: Make the virtio-blk uniquely identifiable in /sys Danny Milosavljevic
2018-03-04  1:09                 ` [bug#30604] [PATCH v9 7/7] linux-initrd: Use module-aliases->module-file-names, too Danny Milosavljevic
2018-03-09 22:26                   ` Danny Milosavljevic
2018-03-18 15:03 ` [bug#30604] Keyboard detection before ‘cryptsetup’ runs Ludovic Courtès
2018-03-23 13:02   ` Danny Milosavljevic [this message]
2018-03-23 15:07     ` Danny Milosavljevic
2018-03-24 17:07       ` Ludovic Courtès
2018-03-24 17:12     ` 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=20180323140231.1c96615c@scratchpost.org \
    --to=dannym@scratchpost.org \
    --cc=30604@debbugs.gnu.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 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.