On Wed, 17 Jan 2024 06:16:36 +0000 Chen Zhongjin <chenzhong...@huawei.com> wrote:
> There is a deadlock scenario in kprobe_optimizer(): > > pid A pid B pid C > kprobe_optimizer() do_exit() perf_kprobe_init() > mutex_lock(&kprobe_mutex) exit_tasks_rcu_start() > mutex_lock(&kprobe_mutex) > synchronize_rcu_tasks() zap_pid_ns_processes() // waiting > kprobe_mutex > // waiting tasks_rcu_exit_srcu kernel_wait4() > // waiting pid C exit > > To avoid this deadlock loop, use synchronize_rcu_tasks_rude() in > kprobe_optimizer() > rather than synchronize_rcu_tasks(). synchronize_rcu_tasks_rude() can also > promise > that all preempted tasks have scheduled, but it will not wait > tasks_rcu_exit_srcu. > > Signed-off-by: Chen Zhongjin <chenzhong...@huawei.com> Thanks. Should we backport this fix into earlier kernels? If so, are we able to identify a suitable Fixes: target?