lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 4 Nov 2021 11:07:05 -0700
From:   Yang Shi <shy828301@...il.com>
To:     Greg KH <gregkh@...uxfoundation.org>
Cc:     HORIGUCHI NAOYA(堀口 直也) 
        <naoya.horiguchi@....com>, Hugh Dickins <hughd@...gle.com>,
        "Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>,
        Matthew Wilcox <willy@...radead.org>,
        Oscar Salvador <osalvador@...e.de>,
        Peter Xu <peterx@...hat.com>,
        Andrew Morton <akpm@...ux-foundation.org>,
        stable <stable@...r.kernel.org>, Linux MM <linux-mm@...ck.org>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [stable 5.10 PATCH] mm: hwpoison: remove the unnecessary THP check

On Thu, Nov 4, 2021 at 10:43 AM Yang Shi <shy828301@...il.com> wrote:
>
> On Thu, Nov 4, 2021 at 9:53 AM Greg KH <gregkh@...uxfoundation.org> wrote:
> >
> > On Wed, Nov 03, 2021 at 10:46:24AM +0100, Greg KH wrote:
> > > On Mon, Nov 01, 2021 at 12:48:56PM -0700, Yang Shi wrote:
> > > > commit c7cb42e94473aafe553c0f2a3d8ca904599399ed upstream.
> > > >
> > > > When handling THP hwpoison checked if the THP is in allocation or free
> > > > stage since hwpoison may mistreat it as hugetlb page.  After commit
> > > > 415c64c1453a ("mm/memory-failure: split thp earlier in memory error
> > > > handling") the problem has been fixed, so this check is no longer
> > > > needed.  Remove it.  The side effect of the removal is hwpoison may
> > > > report unsplit THP instead of unknown error for shmem THP.  It seems not
> > > > like a big deal.
> > > >
> > > > The following patch "mm: filemap: check if THP has hwpoisoned subpage
> > > > for PMD page fault" depends on this, which fixes shmem THP with
> > > > hwpoisoned subpage(s) are mapped PMD wrongly.  So this patch needs to be
> > > > backported to -stable as well.
> > > >
> > > > Link: https://lkml.kernel.org/r/20211020210755.23964-2-shy828301@gmail.com
> > > > Signed-off-by: Yang Shi <shy828301@...il.com>
> > > > Suggested-by: Naoya Horiguchi <naoya.horiguchi@....com>
> > > > Acked-by: Naoya Horiguchi <naoya.horiguchi@....com>
> > > > Cc: Hugh Dickins <hughd@...gle.com>
> > > > Cc: Kirill A. Shutemov <kirill.shutemov@...ux.intel.com>
> > > > Cc: Matthew Wilcox <willy@...radead.org>
> > > > Cc: Oscar Salvador <osalvador@...e.de>
> > > > Cc: Peter Xu <peterx@...hat.com>
> > > > Cc: <stable@...r.kernel.org>
> > > > Signed-off-by: Andrew Morton <akpm@...ux-foundation.org>
> > > > Signed-off-by: Linus Torvalds <torvalds@...ux-foundation.org>
> > > > ---
> > > > mm-filemap-check-if-thp-has-hwpoisoned-subpage-for-pmd-page-fault.patch
> > > > depends on this one.
> > >
> > > Both now queued up, thanks.
> >
> > This breaks the build, see:
> >         https://lore.kernel.org/r/acabc414-164b-cd65-6a1a-cf912d8621d7@roeck-us.net
> >
> > so I'm going to drop both of these now.  Please fix this up and resend a
> > tested series.
>
> Thanks for catching this. It is because I accidentally left the
> PAGEFLAG_* macros into CONFIG_TRANSHUGE_PAGE section, so it is:
>
> #ifdef CONFIG_TRANSHUGE_PAGE
> ...
> #if defined(CONFIG_MEMORY_FAILURE) && defined(CONFIG_TRANSHUGE_PAGE)
> PAGEFLAG_xxx
> #else
> PAGEFLAG_FALSE_xxx
> #endif
> ...
> #endif
>
> So when THP is disabled the PAGEFLAG_FALSE_xxx macro is actually absent.
>
> The upstream has the same issue, will send a patch to fix it soon, and
> send fixes (folded the new fix in) to -stable later. Sorry for the
> inconvenience.

Further looking shows the upstream is good. I did *NOT* add the code
in CONFIG_TRANSHUGE_PAGE section. It seems the code section was moved
around when the patch was applied to 5.10.

Could you please fold the below patch into
mm-filemap-check-if-thp-has-hwpoisoned-subpage-for-pmd-page-fault.patch?
Or I could prepare a patch for you.

 diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index 0db6d83f70c3..1e33ba465195 100644
--- a/include/linux/page-flags.h
+++ b/include/linux/page-flags.h
@@ -676,20 +676,6 @@ static inline int PageTransCompoundMap(struct page *page)
         atomic_read(compound_mapcount_ptr(head));
 }

-#if defined(CONFIG_MEMORY_FAILURE) && defined(CONFIG_TRANSPARENT_HUGEPAGE)
-/*
- * PageHasHWPoisoned indicates that at least one subpage is hwpoisoned in the
- * compound page.
- *
- * This flag is set by hwpoison handler.  Cleared by THP split or free page.
- */
-PAGEFLAG(HasHWPoisoned, has_hwpoisoned, PF_SECOND)
- TESTSCFLAG(HasHWPoisoned, has_hwpoisoned, PF_SECOND)
-#else
-PAGEFLAG_FALSE(HasHWPoisoned)
- TESTSCFLAG_FALSE(HasHWPoisoned)
-#endif
-
 /*
  * PageTransTail returns true for both transparent huge pages
  * and hugetlbfs pages, so it should only be called when it's known
@@ -724,6 +710,20 @@ PAGEFLAG_FALSE(DoubleMap)
  TESTSCFLAG_FALSE(DoubleMap)
 #endif

+#if defined(CONFIG_MEMORY_FAILURE) && defined(CONFIG_TRANSPARENT_HUGEPAGE)
+/*
+ * PageHasHWPoisoned indicates that at least one subpage is hwpoisoned in the
+ * compound page.
+ *
+ * This flag is set by hwpoison handler.  Cleared by THP split or free page.
+ */
+PAGEFLAG(HasHWPoisoned, has_hwpoisoned, PF_SECOND)
+ TESTSCFLAG(HasHWPoisoned, has_hwpoisoned, PF_SECOND)
+#else
+PAGEFLAG_FALSE(HasHWPoisoned)
+ TESTSCFLAG_FALSE(HasHWPoisoned)
+#endif
+
 /*
  * For pages that are never mapped to userspace (and aren't PageSlab),
  * page_type may be used.  Because it is initialised to -1, we invert the

>
> >
> > thanks,
> >
> > greg k-h

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ