Messages in this thread | | | Date | Mon, 21 Nov 2011 18:21:18 -0800 | From | Tejun Heo <> | Subject | Re: [PATCH] cgroup_freezer: fix freezing groups with stopped tasks |
| |
On Tue, Nov 22, 2011 at 10:20:02AM +0800, Li Zefan wrote: > Tejun Heo wrote: > > Hello, Michal. > > > > On Wed, Nov 16, 2011 at 10:50:34PM +0100, Michal Hocko wrote: > >> +/* Task is frozen or will freeze immediately when next it gets woken */ > >> +static bool is_task_frozen_enough(struct task_struct *task) > >> +{ > >> + return frozen(task) || > >> + (task_is_stopped_or_traced(task) && freezing(task)); > >> +} > > > > Hmmm... w/ pending freezer updates, the above would always return > > %true if there's freezing in progress, which can't be right. Maybe > > Only if the task is stopped/trace.
You're right, missed parantheses.
> If we try to freeze a stopped task, it will be kept in freezing state. > > > just test stopped/traced? > > This can trigger a BUG_ON in update_if_frozen(), because we always count a > stopped task as frozen.
So, yeah, the patch looks good to me, but it still isn't difficult to trigger BUG_ON() there. We need a lot of fixes in cgroup_freezer.
Thanks.
-- tejun
| |