On Thu 17-12-15 15:29:56, Vladimir Davydov wrote: > mem_cgroup_lruvec_online() takes lruvec, but it only needs memcg. Since > get_scan_count(), which is the only user of this function, now possesses > pointer to memcg, let's pass memcg directly to mem_cgroup_online() > instead of picking it out of lruvec and rename the function accordingly. > > Signed-off-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx> > Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx> Acked-by: Michal Hocko <mhocko@xxxxxxxx> > --- > include/linux/memcontrol.h | 27 ++++++++++----------------- > mm/vmscan.c | 2 +- > 2 files changed, 11 insertions(+), 18 deletions(-) > > diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h > index 6e0126230878..166661708410 100644 > --- a/include/linux/memcontrol.h > +++ b/include/linux/memcontrol.h > @@ -355,6 +355,13 @@ static inline bool mem_cgroup_disabled(void) > return !cgroup_subsys_enabled(memory_cgrp_subsys); > } > > +static inline bool mem_cgroup_online(struct mem_cgroup *memcg) > +{ > + if (mem_cgroup_disabled()) > + return true; > + return !!(memcg->css.flags & CSS_ONLINE); > +} > + > /* > * For memory reclaim. > */ > @@ -363,20 +370,6 @@ int mem_cgroup_select_victim_node(struct mem_cgroup *memcg); > void mem_cgroup_update_lru_size(struct lruvec *lruvec, enum lru_list lru, > int nr_pages); > > -static inline bool mem_cgroup_lruvec_online(struct lruvec *lruvec) > -{ > - struct mem_cgroup_per_zone *mz; > - struct mem_cgroup *memcg; > - > - if (mem_cgroup_disabled()) > - return true; > - > - mz = container_of(lruvec, struct mem_cgroup_per_zone, lruvec); > - memcg = mz->memcg; > - > - return !!(memcg->css.flags & CSS_ONLINE); > -} > - > static inline > unsigned long mem_cgroup_get_lru_size(struct lruvec *lruvec, enum lru_list lru) > { > @@ -589,13 +582,13 @@ static inline bool mem_cgroup_disabled(void) > return true; > } > > -static inline bool > -mem_cgroup_inactive_anon_is_low(struct lruvec *lruvec) > +static inline bool mem_cgroup_online(struct mem_cgroup *memcg) > { > return true; > } > > -static inline bool mem_cgroup_lruvec_online(struct lruvec *lruvec) > +static inline bool > +mem_cgroup_inactive_anon_is_low(struct lruvec *lruvec) > { > return true; > } > diff --git a/mm/vmscan.c b/mm/vmscan.c > index acc6bff84e26..b220e6cda25d 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -1988,7 +1988,7 @@ static void get_scan_count(struct lruvec *lruvec, struct mem_cgroup *memcg, > if (current_is_kswapd()) { > if (!zone_reclaimable(zone)) > force_scan = true; > - if (!mem_cgroup_lruvec_online(lruvec)) > + if (!mem_cgroup_online(memcg)) > force_scan = true; > } > if (!global_reclaim(sc)) > -- > 2.1.4 > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@xxxxxxxxx. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a> -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>