lkml.org 
[lkml]   [2011]   [Nov]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] cgroup_freezer: fix freezing groups with stopped tasks
    Hello, Michal.

    On Tue, Nov 22, 2011 at 10:05:22AM +0100, Michal Hocko wrote:
    > I am not sure which BUG_ON you have in mind.
    > update_if_frozen:
    > BUG_ON(nfrozen != ntotal);

    Heh, try to put a kthread into the cgroup and freeze it. :)

    > From aba1042a96b6e79e0b14e3c397389389c9e2f522 Mon Sep 17 00:00:00 2001
    > From: Michal Hocko <mhocko@suse.cz>
    > Date: Wed, 16 Nov 2011 22:38:42 +0100
    > Subject: [PATCH] cgroup_freezer: fix freezing groups with stopped tasks
    >
    > 2d3cbf8b (cgroup_freezer: update_freezer_state() does incorrect state
    > transitions) removed is_task_frozen_enough and replaced it with a simple
    > frozen call. This, however, breaks freezing for a group with stopped tasks
    > because those cannot be frozen and so the group remains in CGROUP_FREEZING
    > state (update_if_frozen doesn't count stopped tasks) and never reaches
    > CGROUP_FROZEN.
    >
    > Let's add is_task_frozen_enough back and use it at the original locations
    > (update_if_frozen and try_to_freeze_cgroup). Semantically we consider
    > stopped tasks as frozen enough so we should consider both cases when
    > testing frozen tasks.
    >
    > Testcase:
    > mkdir /dev/freezer
    > mount -t cgroup -o freezer none /dev/freezer
    > mkdir /dev/freezer/foo
    > sleep 1h &
    > pid=$!
    > kill -STOP $pid
    > echo $pid > /dev/freezer/foo/tasks
    > echo FROZEN > /dev/freezer/foo/freezer.state
    > while true
    > do
    > cat /dev/freezer/foo/freezer.state
    > [ "`cat /dev/freezer/foo/freezer.state`" = "FROZEN" ] && break
    > sleep 1
    > done
    > echo OK
    >
    > Signed-off-by: Michal Hocko <mhocko@suse.cz>
    > Cc: Tomasz Buchert <tomasz.buchert@inria.fr>
    > Cc: Paul Menage <paul@paulmenage.org>
    > Cc: Li Zefan <lizf@cn.fujitsu.com>
    > Cc: Andrew Morton <akpm@linux-foundation.org>
    > Cc: Tejun Heo <htejun@gmail.com>

    Applying to cgroup/for-3.2-fixes.

    Thank you.

    --
    tejun


    \
     
     \ /
      Last update: 2011-11-22 16:43    [W:0.045 / U:67.932 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site