mm, memcg: clean up reclaim iter array
Subsystems (2)
[email protected]
maintainerPATCH 18/158 mm, memcg: clean up reclaim iter array
From: Yafang Shao <[email protected]>
Subject: mm, memcg: clean up reclaim iter array
The mem_cgroup_reclaim_cookie is only used in memcg softlimit reclaim now, and the priority of the reclaim is always 0. We don't need to define the iter in struct mem_cgroup_per_node as an array any more. That could make the code more clear and save some space.
Signed-off-by Yafang Shao <[email protected]>
Acked-by Michal Hocko <[email protected]>
Cc Johannes Weiner <[email protected]>
Cc Vladimir Davydov <[email protected]>
Signed-off-by Andrew Morton <[email protected]>
---
include/linux/memcontrol.h | 3 +-- mm/memcontrol.c | 11 +++-------- 2 files changed, 4 insertions(+), 10 deletions(-)
include/linux/memcontrol.h renamed from include/linux/memcontrol.h~mm-memcg-clean-up-reclaim-iter-array +1 -2
@@ -58,7 +58,6 @@ enum mem_cgroup_protection {struct mem_cgroup_reclaim_cookie {pg_data_t *pgdat; -int priority;unsigned int generation; };
@@ -126,7 +125,7 @@ struct mem_cgroup_per_node {unsigned long lru_zone_size[MAX_NR_ZONES ][NR_LRU_LISTS ]; -struct mem_cgroup_reclaim_iter iter[DEF_PRIORITY +1 ]; +struct mem_cgroup_reclaim_iter iter;struct memcg_shrinker_map __rcu *shrinker_map;
mm/memcontrol.c renamed from mm/memcontrol.c~mm-memcg-clean-up-reclaim-iter-array +3 -8
@@ -1052,7 +1052,7 @@ struct mem_cgroup *mem_cgroup_iter(strucstruct mem_cgroup_per_node *mz; mz =mem_cgroup_nodeinfo (root, reclaim->pgdat->node_id); - iter = &mz->iter[reclaim->priority]; + iter = &mz->iter;if (prev && reclaim->generation != iter->generation) goto out_unlock;
@@ -1152,15 +1152,11 @@ static void __invalidate_reclaim_iteratostruct mem_cgroup_reclaim_iter *iter;struct mem_cgroup_per_node *mz;int nid; -int i;for_each_node (nid) { mz =mem_cgroup_nodeinfo (from, nid); -for (i =0 ; i <=DEF_PRIORITY ; i++) { - iter = &mz->iter[i]; -cmpxchg (&iter->position, - dead_memcg,NULL ); - } + iter = &mz->iter; +cmpxchg (&iter->position, dead_memcg,NULL ); } }
@@ -1705,7 +1701,6 @@ static int mem_cgroup_soft_reclaim(strucunsigned long nr_scanned;struct mem_cgroup_reclaim_cookie reclaim = { .pgdat = pgdat, - .priority =0 , }; excess =soft_limit_excess (root_memcg);
_