From: Kirill A. Shutemov <kirill@shutemov.name>
Date: Wed, 16 Dec 2009 00:47:01 +0000 (-0800)
Subject: memcg: fix memory.memsw.usage_in_bytes for root cgroup
X-Git-Tag: firefly_0821_release~9833^2~3651^2~94
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=cd9b45b78a61e8df250e69385c74e729e5b66abf;p=firefly-linux-kernel-4.4.55.git

memcg: fix memory.memsw.usage_in_bytes for root cgroup

A memory cgroup has a memory.memsw.usage_in_bytes file.  It shows the sum
of the usage of pages and swapents in the cgroup.  Presently the root
cgroup's memsw.usage_in_bytes shows the wrong value - the number of
swapents are not added.

So take MEM_CGROUP_STAT_SWAPOUT into account.

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>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
---

diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index e0c2066495e3..7b5b108c1c6b 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -2542,6 +2542,7 @@ static u64 mem_cgroup_read(struct cgroup *cont, struct cftype *cft)
 			val += idx_val;
 			mem_cgroup_get_recursive_idx_stat(mem,
 				MEM_CGROUP_STAT_SWAPOUT, &idx_val);
+			val += idx_val;
 			val <<= PAGE_SHIFT;
 		} else
 			val = res_counter_read_u64(&mem->memsw, name);