Re: [PATCH 21/31] mm, page_alloc: Wake kswapd based on the highest eligible zone

From: Mel Gorman
Date: Tue Jul 05 2016 - 06:49:36 EST


On Tue, Jul 05, 2016 at 02:57:38PM +0800, Hillf Danton wrote:
> >
> > The ac_classzone_idx is used as the basis for waking kswapd and that is based
> > on the preferred zoneref. If the preferred zoneref's highest zone is lower
> > than what is available on other nodes, it's possible that kswapd is woken
> > on a zone with only higher, but still eligible, zones. As classzone_idx
> > is strictly adhered to now, it causes a problem because eligible pages
> > are skipped.
> >
> > For example, node 0 has only DMA32 and node 1 has only NORMAL. An allocating
> > context running on node 0 may wake kswapd on node 1 telling it to skip
> > all NORMAL pages.
> >
> > Signed-off-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
> > ---
> Acked-by: Hillf Danton <hillf.zj@xxxxxxxxxxxxxxx>
>

Thanks. I also noticed when applying the ack that "zoneref's highest
zone" should have been "zoneref's first zone" so fixed that too.

--
Mel Gorman
SUSE Labs