linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: "Zhuo, Qiuxu" <qiuxu.zhuo@intel.com>
To: Jiaqi Yan <jiaqiyan@google.com>
Cc: "akpm@linux-foundation.org" <akpm@linux-foundation.org>,
	"david@redhat.com" <david@redhat.com>,
	"lorenzo.stoakes@oracle.com" <lorenzo.stoakes@oracle.com>,
	"linmiaohe@huawei.com" <linmiaohe@huawei.com>,
	"Luck, Tony" <tony.luck@intel.com>,
	"ziy@nvidia.com" <ziy@nvidia.com>,
	"baolin.wang@linux.alibaba.com" <baolin.wang@linux.alibaba.com>,
	"Liam.Howlett@oracle.com" <Liam.Howlett@oracle.com>,
	"npache@redhat.com" <npache@redhat.com>,
	"ryan.roberts@arm.com" <ryan.roberts@arm.com>,
	"dev.jain@arm.com" <dev.jain@arm.com>,
	"baohua@kernel.org" <baohua@kernel.org>,
	"nao.horiguchi@gmail.com" <nao.horiguchi@gmail.com>,
	"Chen, Farrah" <farrah.chen@intel.com>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Andrew Zaborowski <andrew.zaborowski@intel.com>
Subject: RE: [PATCH 1/1] mm: prevent poison consumption when splitting THP
Date: Mon, 29 Sep 2025 13:27:51 +0000	[thread overview]
Message-ID: <SA1PR11MB7130ABC25E060D2CC4749E45891BA@SA1PR11MB7130.namprd11.prod.outlook.com> (raw)
In-Reply-To: <CACw3F50ijQ20Vg8ycMROSCccf_XtjB_fFvLGxvQZ7eaNQoLwGQ@mail.gmail.com>

Hi Jiaqi,

> From: Jiaqi Yan <jiaqiyan@google.com>
> [...]
> >   First Machine Check occurs // [1]
> >     memory_failure()         // [2]
> >       try_to_split_thp_page()
> >         split_huge_page()
> >           split_huge_page_to_list_to_order()
> >             __folio_split()  // [3]
> >               remap_page()
> >                 remove_migration_ptes()
> >                   remove_migration_pte()
> >                     try_to_map_unused_to_zeropage()
> 
> Just an observation: Unfortunately THP only has PageHasHWPoisoned and
> don't know the exact HWPoisoned page. Otherwise, we may still use
> zeropage for these not HWPoisoned.
> 

Thanks for catching this. 

Miaohe mentioned in another e-mail that there was an HWPoisoned flag for the raw error 4K page.
We could use that flag just to skip that raw error page and still use the zeropage for other
healthy sub-pages. I'll try that.

> >                       memchr_inv()                   // [4]
> >                         Second Machine Check occurs  // [5]
> >                           Kernel panic
> >
> [...]
> > --- a/mm/memory-failure.c
> > +++ b/mm/memory-failure.c
> > @@ -2351,8 +2351,10 @@ int memory_failure(unsigned long pfn, int flags)
> >                  * otherwise it may race with THP split.
> >                  * And the flag can't be set in get_hwpoison_page() since
> >                  * it is called by soft offline too and it is just called
> > -                * for !MF_COUNT_INCREASED.  So here seems to be the best
> > -                * place.
> > +                * for !MF_COUNT_INCREASED.
> > +                * It also tells split_huge_page() to not bother using
> 
> nit: it may confuse readers of split_huge_page when they didn't see any check
> on the hwpoison flag. So from readability PoV, it may be better to refer to this
> in a more generic term like the "following THP splitting process" (I would
> prefer this), or to point precisely to __folio_split.
> 

OK. I'll update this comment in v2.

> Everything else looks good to me.
> 
> Reviewed-by: Jiaqi Yan <jiaqiyan@google.com>

Thanks.

-Qiuxu

  parent reply	other threads:[~2025-09-29 13:28 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-28  3:28 Qiuxu Zhuo
2025-09-28 21:55 ` Jiaqi Yan
2025-09-29 12:29   ` Miaohe Lin
2025-09-29 13:57     ` Zhuo, Qiuxu
2025-09-29 15:15       ` Jiaqi Yan
2025-09-29 13:27   ` Zhuo, Qiuxu [this message]
2025-09-29 15:51     ` Luck, Tony
2025-09-29 16:30       ` Zhuo, Qiuxu
2025-09-29 17:25         ` David Hildenbrand
2025-09-30  1:48           ` Lance Yang
2025-09-30  8:53             ` David Hildenbrand
2025-09-30 10:13               ` Lance Yang
2025-09-30 10:20                 ` Lance Yang
2025-09-29  7:34 ` David Hildenbrand
2025-09-29 13:52   ` Zhuo, Qiuxu
2025-09-29 16:12     ` David Hildenbrand
2025-10-12  1:37   ` Wei Yang
2025-10-12  4:23     ` Jiaqi Yan
2025-10-11  7:55 ` [PATCH v2 " Qiuxu Zhuo
2025-10-11  9:09   ` Lance Yang
2025-10-11 18:18   ` Andrew Morton
2025-10-12  1:23   ` Wei Yang
2025-10-13 17:15   ` Zi Yan
2025-10-14  2:42   ` Miaohe Lin
2025-10-14 14:19 ` [PATCH v3 " Qiuxu Zhuo
2025-10-14 14:29   ` David Hildenbrand
2025-10-14 14:51     ` Zhuo, Qiuxu
2025-10-15  6:49 ` [PATCH v4 " Qiuxu Zhuo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=SA1PR11MB7130ABC25E060D2CC4749E45891BA@SA1PR11MB7130.namprd11.prod.outlook.com \
    --to=qiuxu.zhuo@intel.com \
    --cc=Liam.Howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=andrew.zaborowski@intel.com \
    --cc=baohua@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=david@redhat.com \
    --cc=dev.jain@arm.com \
    --cc=farrah.chen@intel.com \
    --cc=jiaqiyan@google.com \
    --cc=linmiaohe@huawei.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lorenzo.stoakes@oracle.com \
    --cc=nao.horiguchi@gmail.com \
    --cc=npache@redhat.com \
    --cc=ryan.roberts@arm.com \
    --cc=tony.luck@intel.com \
    --cc=ziy@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox