Re: + mm-compaction-split-freepages-without-holding-the-zone-lock-fix.patch added to -mm tree

From: David Rientjes
Date: Tue Jun 21 2016 - 20:53:58 EST


On Wed, 22 Jun 2016, Joonsoo Kim wrote:

> On Tue, Jun 21, 2016 at 04:14:28PM -0700, akpm@xxxxxxxxxxxxxxxxxxxx wrote:
> >
> > The patch titled
> > Subject: mm/compaction: split freepages without holding the zone lock fix
> > has been added to the -mm tree. Its filename is
> > mm-compaction-split-freepages-without-holding-the-zone-lock-fix.patch
> >
> > This patch should soon appear at
> > http://ozlabs.org/~akpm/mmots/broken-out/mm-compaction-split-freepages-without-holding-the-zone-lock-fix.patch
> > and later at
> > http://ozlabs.org/~akpm/mmotm/broken-out/mm-compaction-split-freepages-without-holding-the-zone-lock-fix.patch
> >
> > Before you just go and hit "reply", please:
> > a) Consider who else should be cc'ed
> > b) Prefer to cc a suitable mailing list as well
> > c) Ideally: find the original patch on the mailing list and do a
> > reply-to-all to that, adding suitable additional cc's
> >
> > *** Remember to use Documentation/SubmitChecklist when testing your code ***
> >
> > The -mm tree is included into linux-next and is updated
> > there every 3-4 working days
> >
> > ------------------------------------------------------
> > From: David Rientjes <rientjes@xxxxxxxxxx>
> > Subject: mm/compaction: split freepages without holding the zone lock fix
> >
> > If __isolate_free_page() fails, avoid adding to freelist so we don't call
> > map_pages() with it.
> >
> > Link: http://lkml.kernel.org/r/alpine.DEB.2.10.1606211447001.43430@xxxxxxxxxxxxxxxxxxxxxxxxx
>
> I've sent the fix already. I don't care which patch is merged but I guess
> below series would be merged more cleanly? It's up to Andrew.
>
> Link: http://lkml.kernel.org/r/1466150259-27727-1-git-send-email-iamjoonsoo.kim@xxxxxxx
>

Well, http://marc.info/?l=linux-mm&m=146654572331344 fixes an issue that
persists at least as far back as 3.11 whereas we can scan entire 256GB+
zones needlessly each time compaction_alloc() is called, and that function
can be called multiple times for a single page isolated for migration in
the case of -EAGAIN. It's been measured that compaction_alloc() can take
15-20% of cpu cycles while faulting thp on very large machines back in the
3.11 kernel. I would suggest that this is an important fix that needs to
be included and perhaps backported to stable.

I don't know the relative importance the reducing the size of page_owner
patchset. It appears that the link you provided is a refreshed series of
a patchset that is already in -mm? If so, I think the old set should be
reverted, and whatever dependencies it has, and then a third version of
http://marc.info/?l=linux-mm&m=146654572331344 merged. I can propose that
for inclusion in this release cycle if folks agree that it's warranted.

The alternative seems to be to rebase your refreshed series on top of -mm
with the fix.