Re: [PATCH 08/27] mm, vmscan: Make kswapd reclaim in terms of nodes

From: Mel Gorman
Date: Wed Mar 09 2016 - 09:45:42 EST


On Thu, Mar 03, 2016 at 02:46:14PM +0100, Vlastimil Babka wrote:
> On 02/23/2016 04:04 PM, Mel Gorman wrote:
> > -static bool zone_balanced(struct zone *zone, int order, bool highorder,
> > +static bool zone_balanced(struct zone *zone, int order,
> > unsigned long balance_gap, int classzone_idx)
> > {
> > unsigned long mark = high_wmark_pages(zone) + balance_gap;
> >
> > - /*
> > - * When checking from pgdat_balanced(), kswapd should stop and sleep
> > - * when it reaches the high order-0 watermark and let kcompactd take
> > - * over. Other callers such as wakeup_kswapd() want to determine the
> > - * true high-order watermark.
> > - */
> > - if (IS_ENABLED(CONFIG_COMPACTION) && !highorder) {
> > - mark += (1UL << order);
> > - order = 0;
> > - }
> > -
> > return zone_watermark_ok_safe(zone, order, mark, classzone_idx);
>
> Did you really intend to remove this or was it due to rebasing on top of
> kcompactd?

It was intentional because kswapd_shrink_node() sets sc.order to 0 when
pages have been reclaimed. There is no guarantee it'll be enough to actually
compact but it's conservative in terms of reclaim. The end result should
be that this check is no longer necessary.

--
Mel Gorman
SUSE Labs