提交 d7ae0faa 编写于 作者: J Johannes Weiner 提交者: Yang Yingliang

mm: memcontrol: push down mem_cgroup_nr_lru_pages()

mainline inclusion
from mainline-5.2-rc1
commit 21d89d15
category: bugfix
bugzilla: 34611
CVE: NA

-------------------------------------------------
mem_cgroup_nr_lru_pages() is just a convenience wrapper around
memcg_page_state() that takes bitmasks of lru indexes and aggregates the
counts for those.

Replace callsites where the bitmask is simple enough with direct
memcg_page_state() call(s).

Link: http://lkml.kernel.org/r/20190228163020.24100-6-hannes@cmpxchg.orgSigned-off-by: NJohannes Weiner <hannes@cmpxchg.org>
Reviewed-by: NRoman Gushchin <guro@fb.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit 21d89d15)
Signed-off-by: NKefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: NLiu Shixin <liushixin2@huawei.com>
Reviewed-by: NKefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 0c8a6fa1
...@@ -1385,7 +1385,7 @@ void mem_cgroup_print_oom_meminfo(struct mem_cgroup *memcg) ...@@ -1385,7 +1385,7 @@ void mem_cgroup_print_oom_meminfo(struct mem_cgroup *memcg)
for (i = 0; i < NR_LRU_LISTS; i++) for (i = 0; i < NR_LRU_LISTS; i++)
pr_cont(" %s:%luKB", mem_cgroup_lru_names[i], pr_cont(" %s:%luKB", mem_cgroup_lru_names[i],
K(mem_cgroup_nr_lru_pages(iter, BIT(i)))); K(memcg_page_state(iter, NR_LRU_BASE + i)));
pr_cont("\n"); pr_cont("\n");
} }
...@@ -3120,8 +3120,8 @@ static void accumulate_memcg_tree(struct mem_cgroup *memcg, ...@@ -3120,8 +3120,8 @@ static void accumulate_memcg_tree(struct mem_cgroup *memcg,
acc->events_array ? acc->events_array[i] : i); acc->events_array ? acc->events_array[i] : i);
for (i = 0; i < NR_LRU_LISTS; i++) for (i = 0; i < NR_LRU_LISTS; i++)
acc->lru_pages[i] += acc->lru_pages[i] += memcg_page_state(mi,
mem_cgroup_nr_lru_pages(mi, BIT(i)); NR_LRU_BASE + i);
} }
} }
...@@ -3553,7 +3553,8 @@ static int memcg_stat_show(struct seq_file *m, void *v) ...@@ -3553,7 +3553,8 @@ static int memcg_stat_show(struct seq_file *m, void *v)
for (i = 0; i < NR_LRU_LISTS; i++) for (i = 0; i < NR_LRU_LISTS; i++)
seq_printf(m, "%s %lu\n", mem_cgroup_lru_names[i], seq_printf(m, "%s %lu\n", mem_cgroup_lru_names[i],
mem_cgroup_nr_lru_pages(memcg, BIT(i)) * PAGE_SIZE); memcg_page_state(memcg, NR_LRU_BASE + i) *
PAGE_SIZE);
/* Hierarchical information */ /* Hierarchical information */
memory = memsw = PAGE_COUNTER_MAX; memory = memsw = PAGE_COUNTER_MAX;
...@@ -4066,8 +4067,8 @@ void mem_cgroup_wb_stats(struct bdi_writeback *wb, unsigned long *pfilepages, ...@@ -4066,8 +4067,8 @@ void mem_cgroup_wb_stats(struct bdi_writeback *wb, unsigned long *pfilepages,
/* this should eventually include NR_UNSTABLE_NFS */ /* this should eventually include NR_UNSTABLE_NFS */
*pwriteback = memcg_exact_page_state(memcg, NR_WRITEBACK); *pwriteback = memcg_exact_page_state(memcg, NR_WRITEBACK);
*pfilepages = mem_cgroup_nr_lru_pages(memcg, (1 << LRU_INACTIVE_FILE) | *pfilepages = memcg_exact_page_state(memcg, NR_INACTIVE_FILE) +
(1 << LRU_ACTIVE_FILE)); memcg_exact_page_state(memcg, NR_ACTIVE_FILE);
*pheadroom = PAGE_COUNTER_MAX; *pheadroom = PAGE_COUNTER_MAX;
while ((parent = parent_mem_cgroup(memcg))) { while ((parent = parent_mem_cgroup(memcg))) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册