mm: memcontrol: re-use node VM page state enum

The current duplication is a high-maintenance mess, and it's painful to
add new items or query memcg state from the rest of the VM.

This increases the size of the stat array marginally, but we should aim
to track all these stats on a per-cgroup level anyway.

Link: http://lkml.kernel.org/r/20170404220148.28338-3-hannes@cmpxchg.org
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Vladimir Davydov <vdavydov.dev@gmail.com>
Cc: Michal Hocko <mhocko@suse.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
このコミットが含まれているのは:
Johannes Weiner
2017-05-03 14:55:13 -07:00
committed by Linus Torvalds
コミット 71cd31135d
6個のファイルの変更123行の追加138行の削除

ファイルの表示

@@ -289,11 +289,11 @@ bool workingset_refault(void *shadow)
refault_distance = (refault - eviction) & EVICTION_MASK;
inc_node_state(pgdat, WORKINGSET_REFAULT);
mem_cgroup_inc_stat(memcg, MEMCG_WORKINGSET_REFAULT);
mem_cgroup_inc_stat(memcg, WORKINGSET_REFAULT);
if (refault_distance <= active_file) {
inc_node_state(pgdat, WORKINGSET_ACTIVATE);
mem_cgroup_inc_stat(memcg, MEMCG_WORKINGSET_ACTIVATE);
mem_cgroup_inc_stat(memcg, WORKINGSET_ACTIVATE);
rcu_read_unlock();
return true;
}
@@ -475,8 +475,7 @@ static enum lru_status shadow_lru_isolate(struct list_head *item,
if (WARN_ON_ONCE(node->exceptional))
goto out_invalid;
inc_node_state(page_pgdat(virt_to_page(node)), WORKINGSET_NODERECLAIM);
mem_cgroup_inc_page_stat(virt_to_page(node),
MEMCG_WORKINGSET_NODERECLAIM);
mem_cgroup_inc_page_stat(virt_to_page(node), WORKINGSET_NODERECLAIM);
__radix_tree_delete_node(&mapping->page_tree, node,
workingset_update_node, mapping);