Messages in this thread | ![/](/images/icornerl.gif) | | Subject | Re: [PATCH/RFC 1/2] init/initramfs.c: allow asynchronous unpacking | From | Rasmus Villemoes <> | Date | Wed, 24 Feb 2021 23:13:02 +0100 |
| |
On 24/02/2021 18.17, Linus Torvalds wrote: > On Wed, Feb 24, 2021 at 6:29 AM Rasmus Villemoes > <linux@rasmusvillemoes.dk> wrote: >> >> So add an initramfs_async= kernel parameter, allowing the main init >> process to proceed to handling device_initcall()s without waiting for >> populate_rootfs() to finish. > > Hmm. This is why we have the whole "async_schedule()" thing (mostly > used for things like disk spin-up etc). Is there some reason you > didn't use that infrastructure?
Mostly because I completely forgot it existed, it's not an API you stumble upon in every other source file.
I guess I could use that, but it would look very much like what I have now - there'd still be some function to call to make sure the initramfs is ready, only that would then do async_synchronize() instead of wait_for_completion().
Is there some fundamental reason something like this shouldn't be doable? Are there places other than the usermodehelper and firmware loading (and obviously right-before-opening /dev/console and exec'ing /init) that would need to be taught about this?
Rasmus
| ![\](/images/icornerr.gif) |