Re: [PATCH 06/16] freezer: make exiting tasks properly unfreezable

From: Tejun Heo
Date: Thu Aug 25 2011 - 17:52:12 EST


Hello, Oleg.

On Thu, Aug 25, 2011 at 06:56:50PM +0200, Oleg Nesterov wrote:
> But still I can't understand why it is better to consider the exiting
> task as "frozen" from the very beginning, right after PTRACE_EVENT_EXIT.
> do_exit() does a lot of misc things, and this patch simply makes it
> "invisible" to the freezer. This looks "unsafe" even if this is fine
> for suspend/etc.
>
> To me, try_to_freeze_tasks() should succed when all threads either
> sleep in refrigerator(), or ->state = TASK_DEAD (the final schedule()
> was called). Until then try_to_freeze_tasks() should retry.

Hmmm... yeah, maybe moving it right after setting ->state would be
safer. Care to send a patch?

> But since we can't see the threads after exit_notify (in general),
> the current ->exit_state check looks reasonable.

I prefer setting NOFREEZE after point of no return from exit path.
The intention is clearer that way, I think.

> > Another freezer user is the cgroup,
>
> Yes. And I don't understand this case too. I mean, the fact we ignore
> the exiting tasks.

Because it's basically a mass (or meta) job control mechanism and it's
nicer to be able to kill processes after freezing berserk cgroups.

Thanks.

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/