On 24/02/2021 18.17, Linus Torvalds wrote: > On Wed, Feb 24, 2021 at 6:29 AM Rasmus Villemoes > <linux@xxxxxxxxxxxxxxxxxx> 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