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

From: Prarit Bhargava
Date: Tue Apr 30 2019 - 07:28:29 EST




On 4/30/19 3:51 AM, 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 :)

#oops.

I forgot that git-send-email doesn't pick up "Reported-by".

P.

>
>> ----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
>>