Re: [PATCH 5/7] cgroup_freezer: allow moving tasks in and out of a frozen cgroup
From: Oleg Nesterov <hidden>
Date: 2012-10-23 16:13:09
Also in:
lkml
From: Oleg Nesterov <hidden>
Date: 2012-10-23 16:13:09
Also in:
lkml
On 10/22, Tejun Heo wrote:
Hello, On Mon, Oct 22, 2012 at 09:25:06PM +0200, Oleg Nesterov wrote:quoted
quoted
@@ -190,12 +201,12 @@ static void freezer_fork(struct task_struct *task) goto out; spin_lock_irq(&freezer->lock); - BUG_ON(freezer->state == CGROUP_FROZEN); - - /* Locking avoids race with FREEZING -> THAWED transitions. */ - if (freezer->state == CGROUP_FREEZING) + /* + * @task might have been just migrated into a FROZEN cgroup.Confused. If it was migrated, then freezer_attach() should take care do freeze_task?Hmmm... there's a window where a task is migrated but ->attach() hasn't completed yet, so freezer_attach() might not have kicked in yet.
Yes, I see. Indeed, cgroup_task_migrate() is called before ->attach(). Thanks! Oleg.