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

From: Vlastimil Babka
Date: Wed Jun 01 2016 - 11:19:33 EST


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().