Re: [PATCH v5 1/6] kprobes: Remove dependency to the module_mutex

From: Ingo Molnar
Date: Fri Jul 24 2020 - 05:17:17 EST



* Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxxxxxx> wrote:

> --- a/kernel/kprobes.c
> +++ b/kernel/kprobes.c
> @@ -564,7 +564,7 @@ static void kprobe_optimizer(struct work_struct *work)
> cpus_read_lock();
> mutex_lock(&text_mutex);
> /* Lock modules while optimizing kprobes */
> - mutex_lock(&module_mutex);
> + lock_modules();
>
> /*
> * Step 1: Unoptimize kprobes and collect cleaned (unused and disarmed)
> @@ -589,7 +589,7 @@ static void kprobe_optimizer(struct work_struct *work)
> /* Step 4: Free cleaned kprobes after quiesence period */
> do_free_cleaned_kprobes();
>
> - mutex_unlock(&module_mutex);
> + unlock_modules();
> mutex_unlock(&text_mutex);
> cpus_read_unlock();

BTW., it would be nice to expand on the comments above - exactly which
parts of the modules code is being serialized against and why?

We already hold the text_mutex here, which should protect against most
kprobes related activities interfering - and it's unclear (to me)
which part of the modules code is being serialized with here, and the
'lock modules while optimizing kprobes' comments is unhelpful. :-)

Thanks,

Ingo