Re: [PATCH 04/27] mm, vmscan: Begin reclaiming pages on a per-node basis

From: Mel Gorman
Date: Thu Jun 23 2016 - 07:07:37 EST


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--;

--
Mel Gorman
SUSE Labs