On Tue 31-05-16 15:08:18, Vlastimil Babka wrote: [...] > @@ -2364,11 +2350,12 @@ static inline bool should_continue_reclaim(struct > zone *zone, > } > > static bool shrink_zone(struct zone *zone, struct scan_control *sc, > - bool is_classzone) > + int classzone_idx) > { > struct reclaim_state *reclaim_state = current->reclaim_state; > unsigned long nr_reclaimed, nr_scanned; > bool reclaimable = false; > + bool is_classzone = (classzone_idx == zone_idx(zone)); > > do { > struct mem_cgroup *root = sc->target_mem_cgroup; > @@ -2450,7 +2437,7 @@ static bool shrink_zone(struct zone *zone, struct > scan_control *sc, > reclaimable = true; > > } while (should_continue_reclaim(zone, sc->nr_reclaimed - nr_reclaimed, > - sc->nr_scanned - nr_scanned, sc)); > + sc->nr_scanned - nr_scanned, sc, classzone_idx)); > > return reclaimable; > } > @@ -2580,7 +2567,7 @@ static void shrink_zones(struct zonelist *zonelist, > struct scan_control *sc) > /* need some check for avoid more shrink_zone() */ > } > > - shrink_zone(zone, sc, zone_idx(zone) == classzone_idx); > + shrink_zone(zone, sc, classzone_idx);
this should be is_classzone, right? -- Michal Hocko SUSE Labs