Re: [PATCH 12/24] sched/fair: Prepare exit/cleanup paths for delayed_dequeue
From: Chen Yu
Date: Tue Aug 27 2024 - 05:17:54 EST
On 2024-07-27 at 12:27:44 +0200, Peter Zijlstra wrote:
> When dequeue_task() is delayed it becomes possible to exit a task (or
> cgroup) that is still enqueued. Ensure things are dequeued before
> freeing.
>
> NOTE: switched_from_fair() causes spurious wakeups due to clearing
> sched_delayed after enqueueing a task in another class that should've
> been dequeued. This *should* be harmless.
>
It might bring some expected behavior in some corner cases reported here:
https://lore.kernel.org/lkml/202408161619.9ed8b83e-lkp@xxxxxxxxx/
As the block task might return from schedule() with TASK_INTERRUPTIBLE.
We cooked a patch to workaround it(as below).
thanks,
Chenyu