lkml.org 
[lkml]   [2012]   [Jan]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/3] cgroup: make sure memcg margin is 0 when over limit
    Date
    For the memcg sock code, we'll need to register allocations
    that are temporarily over limit. Let's make sure that margin
    is 0 in this case.

    I am keeping this as a separate patch, so that if any weirdness
    interaction appears in the future, we can now exactly what caused
    it.

    Suggested by Johannes Weiner

    Signed-off-by: Glauber Costa <glommer@parallels.com>
    CC: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    CC: Johannes Weiner <hannes@cmpxchg.org>
    CC: Michal Hocko <mhocko@suse.cz>
    CC: Tejun Heo <tj@kernel.org>
    CC: Li Zefan <lizf@cn.fujitsu.com>
    ---
    include/linux/res_counter.h | 5 ++++-
    1 files changed, 4 insertions(+), 1 deletions(-)

    diff --git a/include/linux/res_counter.h b/include/linux/res_counter.h
    index c9d625c..d06d014 100644
    --- a/include/linux/res_counter.h
    +++ b/include/linux/res_counter.h
    @@ -142,7 +142,10 @@ static inline unsigned long long res_counter_margin(struct res_counter *cnt)
    unsigned long flags;

    spin_lock_irqsave(&cnt->lock, flags);
    - margin = cnt->limit - cnt->usage;
    + if (cnt->limit > cnt->usage)
    + margin = cnt->limit - cnt->usage;
    + else
    + margin = 0;
    spin_unlock_irqrestore(&cnt->lock, flags);
    return margin;
    }
    --
    1.7.7.4


    \
     
     \ /
      Last update: 2012-01-20 16:05    [W:0.020 / U:0.152 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site