memcg: fix thresholds with use_hierarchy == 1
We need to check parent's thresholds if parent has use_hierarchy == 1 to be sure that parent's threshold events will be triggered even if parent itself is not active (no MEM_CGROUP_EVENTS). Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name> Reviewed-by: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Acked-by: Balbir Singh <balbir@linux.vnet.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
f241e6607b
commit
ad4ca5f4b7
1 changed files with 7 additions and 3 deletions
|
@ -3587,9 +3587,13 @@ static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap)
|
|||
|
||||
static void mem_cgroup_threshold(struct mem_cgroup *memcg)
|
||||
{
|
||||
__mem_cgroup_threshold(memcg, false);
|
||||
if (do_swap_account)
|
||||
__mem_cgroup_threshold(memcg, true);
|
||||
while (memcg) {
|
||||
__mem_cgroup_threshold(memcg, false);
|
||||
if (do_swap_account)
|
||||
__mem_cgroup_threshold(memcg, true);
|
||||
|
||||
memcg = parent_mem_cgroup(memcg);
|
||||
}
|
||||
}
|
||||
|
||||
static int compare_thresholds(const void *a, const void *b)
|
||||
|
|
Loading…
Reference in a new issue