cgroup: make sure memcg margin is 0 when over limit
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> Acked-by: Tejun Heo <tj@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
376be5ff8a
commit
8cfd14ad1e
@@ -142,7 +142,10 @@ static inline unsigned long long res_counter_margin(struct res_counter *cnt)
|
|||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
spin_lock_irqsave(&cnt->lock, flags);
|
spin_lock_irqsave(&cnt->lock, flags);
|
||||||
|
if (cnt->limit > cnt->usage)
|
||||||
margin = cnt->limit - cnt->usage;
|
margin = cnt->limit - cnt->usage;
|
||||||
|
else
|
||||||
|
margin = 0;
|
||||||
spin_unlock_irqrestore(&cnt->lock, flags);
|
spin_unlock_irqrestore(&cnt->lock, flags);
|
||||||
return margin;
|
return margin;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user