On Thu 23-06-16 12:07:28, Mel Gorman wrote:
> On Wed, Jun 22, 2016 at 06:00:12PM +0200, Vlastimil Babka wrote:
> > >>-         enum zone_type classzone_idx;
> > >>-
> > >>          if (!populated_zone(zone))
> > >>                  continue;
> > >>
> > >>-         classzone_idx = requested_highidx;
> > >>+         /*
> > >>+          * Note that reclaim_idx does not change as it is the highest
> > >>+          * zone reclaimed from which for empty zones is a no-op but
> > >>+          * classzone_idx is used by shrink_node to test if the slabs
> > >>+          * should be shrunk on a given node.
> > >>+          */
> > >>          while (!populated_zone(zone->zone_pgdat->node_zones +
> > >>-                                                 classzone_idx))
> > >>+                                                 classzone_idx)) {
> > >>                  classzone_idx--;
> > >>+                 continue;
> > 
> > Oh and Michal's comment on Patch 20 made me realize that my objection to v6
> > about possible underflow of sc->reclaim_idx and classzone_idx seems to still
> > apply here for classzone_idx?
> 
> Potentially. The relevant code now looks like this
> 
>                 classzone_idx = sc->reclaim_idx;
>                 while (!populated_zone(zone->zone_pgdat->node_zones +
>                                                         classzone_idx))
>                         classzone_idx--;

Yes that makes much more sense to me.

-- 
Michal Hocko
SUSE Labs

Reply via email to