Re: [PATCH] compaction: fix isolate_migratepages_block() for THP=n

From: Andrew Morton
Date: Tue Apr 28 2015 - 18:37:46 EST


On Wed, 29 Apr 2015 01:28:28 +0300 "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx> wrote:

> On Tue, Apr 28, 2015 at 03:14:20PM -0700, Andrew Morton wrote:
> > On Mon, 27 Apr 2015 14:26:46 +0300 "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx> wrote:
> >
> > > PageTrans* helpers are always-false if THP is disabled compile-time.
> > > It means the fucntion will fail to detect hugetlb pages in this case.
> > >
> > > Let's use PageCompound() instead. With small tweak to how we calculate
> > > next low_pfn it will make function ready to see tail pages.
> >
> > <scratches head>
> >
> > So this patch has no runtime effects at present? It is preparation for
> > something else?
>
> I wrote this to fix bug I originally attributed to refcounting patchset,
> but Sasha triggered the same bug on -next without the patchset applied:
>
> http://lkml.kernel.org/g/553EB993.7030401@xxxxxxxxxx

Well why the heck didn't the changelog tell us this?!?!?

> Now I think it's related to changing of PageLRU() behaviour on tail page
> by my page flags patchset.

So this patch is a bugfix against one of

page-flags-trivial-cleanup-for-pagetrans-helpers.patch
page-flags-introduce-page-flags-policies-wrt-compound-pages.patch
page-flags-define-pg_locked-behavior-on-compound-pages.patch
page-flags-define-behavior-of-fs-io-related-flags-on-compound-pages.patch
page-flags-define-behavior-of-lru-related-flags-on-compound-pages.patch
page-flags-define-behavior-slb-related-flags-on-compound-pages.patch
page-flags-define-behavior-of-xen-related-flags-on-compound-pages.patch
page-flags-define-pg_reserved-behavior-on-compound-pages.patch
page-flags-define-pg_swapbacked-behavior-on-compound-pages.patch
page-flags-define-pg_swapcache-behavior-on-compound-pages.patch
page-flags-define-pg_mlocked-behavior-on-compound-pages.patch
page-flags-define-pg_uncached-behavior-on-compound-pages.patch
page-flags-define-pg_uptodate-behavior-on-compound-pages.patch
page-flags-look-on-head-page-if-the-flag-is-encoded-in-page-mapping.patch
mm-sanitize-page-mapping-for-tail-pages.patch
include-linux-page-flagsh-rename-macros-to-avoid-collisions.patch

Which one was the faulty patch?

> PageLRU() on tail pages now reports true if
> head page is on LRU. It means no we can go futher insede
> isolate_migratepages_block() with tail page.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/