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>
このコミットが含まれているのは:
@@ -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);
|
||||
|
||||
|
新しいイシューから参照
ユーザーをブロックする