Re: [PATCH v4] kernel/fork: beware of __put_task_struct calling context

From: Andrew Morton
Date: Mon Feb 06 2023 - 20:09:38 EST


On Mon, 6 Feb 2023 10:04:47 -0300 Wander Lairson Costa <wander@xxxxxxxxxx> wrote:

> Under PREEMPT_RT, __put_task_struct() indirectly acquires sleeping
> locks. Therefore, it can't be called from an non-preemptible context.

Well that's regrettable. Especially if non-preempt kernels don't do
this.

Why does PREEMPT_RT do this and can it be fixed?

If it cannot be fixed then we should have a might_sleep() in
__put_task_struct() for all kernel configurations, along with an
apologetic comment explaining why.