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

From: Michal Hocko
Date: Wed Jun 01 2016 - 11:45:52 EST


On Wed 01-06-16 17:19:26, Vlastimil Babka wrote:
> On 06/01/2016 04:21 PM, Michal Hocko wrote:
> > 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?
>
> No, this is shrink_zones() context, not shrink_zone().

Ohh, right. They read to similar. I didn't spot anything else.

Acked-by: Michal Hocko <mhocko@xxxxxxxx>

--
Michal Hocko
SUSE Labs