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

From: Kirill A. Shutemov
Date: Tue Apr 28 2015 - 18:44:58 EST


On Tue, Apr 28, 2015 at 03:37:24PM -0700, Andrew Morton wrote:
> 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?!?!?

Sasha reported bug in -next after I sent the patch.

>
> > 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

^^^ this one is fault, I think.

> 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/

--
Kirill A. Shutemov
--
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/