Re: [PATCH] kernel/module: Reschedule while waiting for modules to finish loading

From: Heiko Carstens
Date: Tue Apr 30 2019 - 05:16:57 EST


On Tue, Apr 30, 2019 at 09:51:08AM +0200, Jessica Yu wrote:
> +++ Prarit Bhargava [29/04/19 11:17 -0400]:
> >Heiko, do you want a Signed-off-by or a Reported-by? Either one works
> >for me.
> >
> >P.
>
> I think you forgot to CC Heiko :)

Indeed ;)

I'm fine with the Reported-by tag. Thank you!

> >----8<----
> >
> >On a s390 z14 LAR with 2 cpus about stalls about 3% of the time while
> >loading the s390_trng.ko module.
> >
> >Add a reschedule point to the loop that waits for modules to complete
> >loading.
> >
> >Reported-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
> >Fixes: linux-next commit f9a75c1d717f ("modules: Only return -EEXIST for modules that have finished loading")
> >Signed-off-by: Prarit Bhargava <prarit@xxxxxxxxxx>
> >Cc: Jessica Yu <jeyu@xxxxxxxxxx>
> >---
> >kernel/module.c | 1 +
> >1 file changed, 1 insertion(+)
> >
> >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 @@ static int add_unformed_module(struct module *mod)
> > finished_loading(mod->name));
> > if (err)
> > goto out_unlocked;
> >+ cond_resched();
> > goto again;
> > }
> > err = -EEXIST;
> >--
> >2.18.1
> >