On Sat, Apr 27, 2019 at 06:42:51AM -0400, Prarit Bhargava wrote: > On 4/27/19 6:24 AM, Heiko Carstens wrote: > > > > > diff --git a/kernel/module.c b/kernel/module.c > > index 410eeb7e4f1d..48748cfec991 100644 > > --- a/kernel/module.c > > +++ b/kernel/module.c > > @@ -3585,6 +3585,7 @@ again: > > finished_loading(mod->name)); > > if (err) > > goto out_unlocked; > > + cond_resched(); > Heiko, I'm testing on 2-cpu systems which appear to show the problem ~10% of the > time. On another system I backed out my original patch to set a baseline, and > noticed that occasionally the time to boot the system doubles from ~4 seconds to > 9 seconds. Is this something you're also concerned with? This _could_ be an issue, since I see the problem much more likely to happen on systems with many devices (where many means only something like 10 block devices). As far as I can tell it looks like systemd/udevd tries to modprobe at the s390-trng module for each(!) device. I have no idea why it is doing that... however given that (failed) module handling now sometimes takes more time, this might become a real issue on system with several 1000s of block devices, which is a realistic scenario at least on s390.