lkml.org 
[lkml]   [2021]   [Mar]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v2 0/2] background initramfs unpacking, and CONFIG_MODPROBE_PATH
    Date
    These two patches are independent, but better-together.

    The second is a rather trivial patch that simply allows the developer
    to change "/sbin/modprobe" to something else - e.g. the empty string,
    so that all request_module() during early boot return -ENOENT early,
    without even spawning a usermode helper.

    The first patch allows delegating decompressing the initramfs to a
    worker thread, allowing do_initcalls() in main.c to proceed to the
    device_ and late_ initcalls without waiting for that decompression
    (and populating of rootfs) to finish. Obviously, some of those later
    calls may rely on the initramfs being available, so I've added
    synchronization points in the firmware loader and usermodehelper paths
    - there might be other places that would need this.

    There's not much to win if most of the functionality needed during
    boot is only available as modules. But systems with a custom-made
    .config and initramfs can boot faster, partly due to utilizing more
    than one cpu earlier, partly by avoiding known-futile modprobe calls
    (which would still trigger synchronization with the initramfs
    unpacking, thus eliminating most of the first benefit).

    Routing-wise, I hope akpm can handle both patches. Andrew, Luis?

    Changes in v2:

    - Rebase on master, piggy-backing on the include guard and #ifdef
    CONFIG_BLK_DEV_INITRD added to initrd.h in fade5cad93 and
    c72160fe05.

    - Use existing async_* API instead of wait_for_completion/complete_all

    - Drop debug leftovers from wait_for_initramfs().

    - Fix initialization of initramfs_async variable.

    Rasmus Villemoes (2):
    init/initramfs.c: allow asynchronous unpacking
    modules: add CONFIG_MODPROBE_PATH

    .../admin-guide/kernel-parameters.txt | 12 ++++++
    drivers/base/firmware_loader/main.c | 2 +
    include/linux/initrd.h | 2 +
    init/Kconfig | 12 ++++++
    init/initramfs.c | 41 ++++++++++++++++++-
    init/main.c | 1 +
    kernel/kmod.c | 2 +-
    kernel/umh.c | 2 +
    usr/Kconfig | 10 +++++
    9 files changed, 82 insertions(+), 2 deletions(-)

    --
    2.29.2

    \
     
     \ /
      Last update: 2021-03-09 22:19    [W:6.026 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site