Re: [PATCH v3 1/2] init/initramfs.c: do unpacking asynchronously

From: Luis Chamberlain
Date: Tue Jul 27 2021 - 10:21:48 EST


On Tue, Jul 27, 2021 at 04:12:54PM +0200, Bruno Goncalves wrote:
> On Tue, Jul 27, 2021 at 3:55 PM Luis Chamberlain <mcgrof@xxxxxxxxxx> wrote:
> >
> > On Tue, Jul 27, 2021 at 09:31:54AM +0200, Bruno Goncalves wrote:
> > > On Mon, Jul 26, 2021 at 1:46 PM Rasmus Villemoes
> > > <linux@xxxxxxxxxxxxxxxxxx> wrote:
> > > >
> > > > On 24/07/2021 09.46, Alexander Egorenkov wrote:
> > > > > Hello,
> > > > >
> > > > > since e7cb072eb988 ("init/initramfs.c: do unpacking asynchronously"), we
> > > > > started seeing the following problem on s390 arch regularly:
> > > > >
> > > > > [ 5.039734] wait_for_initramfs() called before rootfs_initcalls
> >
> > So some context here, which might help.
> >
> > The initramfs_cookie is initialized until a a rootfs_initcall() is
> > called, in this case populate_rootfs(). The code is small, so might
> > as well include it:
> >
> > static int __init populate_rootfs(void)
> > {
> > initramfs_cookie = async_schedule_domain(do_populate_rootfs, NULL,
> > &initramfs_domain);
> > if (!initramfs_async)
> > wait_for_initramfs();
> > return 0;
> > }
> > rootfs_initcall(populate_rootfs);
> >
> > The warning you see comes from a situation where a wait_for_initramfs()
> > gets called but we haven't yet initialized initramfs_cookie. There are
> > only a few calls for wait_for_initramfs() in the kernel, and the only
> > thing I can think of is that somehow s390 may rely on a usermode helper
> > early on, but not every time.
> >
> > What umh calls does s390 issue?
> >
> > > Unfortunately, we haven't been able to find the root cause, but since
> > > June 23rd we haven't hit this panic...
> > >
> > > Btw, this panic we were hitting only when testing kernels from "scsi"
> > > and "block" trees.
> >
> > Do you use drdb maybe?
>
> No, the machines we were able to reproduce the problem don't have drdb.

Are there *any* umh calls early on boot on the s390 systems? If so
chances are that is the droid you are looking for.

Luis