Re: [PATCH v2] mm: Stop kswapd early when nothing's waiting for it to free pages

From: Sultan Alsawaf
Date: Fri Feb 21 2020 - 15:01:00 EST


On Fri, Feb 21, 2020 at 10:22:02AM -0800, Ira Weiny wrote:
> On Thu, Feb 20, 2020 at 08:30:52PM -0800, Sultan Alsawaf wrote:
> > From: Sultan Alsawaf <sultan@xxxxxxxxxxxxxxx>
>
> [snip]
>
> > @@ -4640,9 +4647,12 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
> > goto retry;
> > }
> > fail:
> > - warn_alloc(gfp_mask, ac->nodemask,
> > - "page allocation failure: order:%u", order);
> > got_pg:
>
> I have no insight into if this is masking a deeper problem or if this fixes
> something but doesn't the above result in 'fail' and 'got_pg' being the same
> label?
>
> Ira
>
> > + if (woke_kswapd)
> > + atomic_dec(&pgdat->kswapd_waiters);
> > + if (!page)
> > + warn_alloc(gfp_mask, ac->nodemask,
> > + "page allocation failure: order:%u", order);
> > return page;
> > }
>
> [snip]

Yes,. This was to reduce the patch delta for the initial submission so it's
clearer what's going on; it can be altered of course to coalesce the labels into
a single one. I typically produce my patches to upstream components to be as
uninvasive as possible to aid in backporting and forward porting in case it's
rejected and I want to keep it for myself.

Sultan