在 2025/8/8 22:29, Oleg Nesterov 写道:
On 08/07, Zihuan Zhang wrote:
@@ -6980,6 +6981,7 @@ void __noreturn do_task_dead(void)
current->flags |= PF_NOFREEZE;
__schedule(SM_NONE);
+ freeze_set_default_priority(current, FREEZE_PRIORITY_NEVER);
BUG();
But this change has no effect?
Firstly, this last __schedule() should not return, note the BUG() we have.
Secondly, this zombie is already PF_NOFREEZE, freeze_task() will return
false anyway.
Sorry, but in our tests with a large number of zombie tasks, returning
early reduced the overhead. Even though freeze_task() would return false
for PF_NOFREEZE, skipping the extra path still saved time in our
suspend/freezer loop.
Oleg.