Re: [PATCH v2 18/18] mm, vmscan: use proper classzone_idx in should_continue_reclaim()

From: Michal Hocko
Date: Wed Jun 01 2016 - 10:21:44 EST


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