Re: [PATCH 04/27] mm, vmscan: Begin reclaiming pages on a per-node basis
From: Michal Hocko
Date: Thu Jun 23 2016 - 07:13:27 EST
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