public inbox for linux-doc@vger.kernel.org
 help / color / mirror / Atom feed
From: Breno Leitao <leitao@debian.org>
To: Miaohe Lin <linmiaohe@huawei.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	 linux-doc@vger.kernel.org, kernel-team@meta.com,
	Naoya Horiguchi <nao.horiguchi@gmail.com>,
	 Andrew Morton <akpm@linux-foundation.org>,
	Jonathan Corbet <corbet@lwn.net>,
	 Shuah Khan <skhan@linuxfoundation.org>
Subject: Re: [PATCH v2 1/3] mm/memory-failure: report MF_MSG_KERNEL for reserved pages
Date: Fri, 10 Apr 2026 07:03:45 -0700	[thread overview]
Message-ID: <adkCtR0LzJ7aWfm-@gmail.com> (raw)
In-Reply-To: <e074d5de-f494-4995-2521-32de4f2bd34f@huawei.com>

On Tue, Apr 07, 2026 at 10:56:39AM +0800, Miaohe Lin wrote:
> On 2026/3/31 19:00, Breno Leitao wrote:
> > When get_hwpoison_page() returns a negative value, distinguish
> > reserved pages from other failure cases by reporting MF_MSG_KERNEL
> > instead of MF_MSG_GET_HWPOISON. Reserved pages belong to the kernel
> > and should be classified accordingly for proper handling by the
> > panic_on_unrecoverable_memory_failure mechanism.
> > 
> > Signed-off-by: Breno Leitao <leitao@debian.org>
> > ---
> >  mm/memory-failure.c | 6 +++++-
> >  1 file changed, 5 insertions(+), 1 deletion(-)
> > 
> > diff --git a/mm/memory-failure.c b/mm/memory-failure.c
> > index ee42d4361309..6ff80e01b91a 100644
> > --- a/mm/memory-failure.c
> > +++ b/mm/memory-failure.c
> > @@ -2432,7 +2432,11 @@ int memory_failure(unsigned long pfn, int flags)
> >  		}
> >  		goto unlock_mutex;
> >  	} else if (res < 0) {
> > -		res = action_result(pfn, MF_MSG_GET_HWPOISON, MF_IGNORED);
> > +		if (PageReserved(p))
> > +			res = action_result(pfn, MF_MSG_KERNEL, MF_IGNORED);
> 
> Is it safe or common to check page flags without holding extra refcnt?


Yes, this is safe. At this point the page has HWPoison set, preventing
reallocation.

PageReserved is an atomic flag test on struct page memory that's always
valid for online PFNs.

Reserved pages are inherently stable (kernel text, firmware, etc.) and
don't change status dynamically.

This follows the same pattern as the existing is_free_buddy_page(p)
check a few lines above, which also reads page state without an extra
refcount.

The result is only used for a detailed classification, so even a theoretical
race would not be a bad issue.

  reply	other threads:[~2026-04-10 14:04 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-31 11:00 [PATCH v2 0/3] mm/memory-failure: add panic option for unrecoverable pages Breno Leitao
2026-03-31 11:00 ` [PATCH v2 1/3] mm/memory-failure: report MF_MSG_KERNEL for reserved pages Breno Leitao
2026-04-07  2:56   ` Miaohe Lin
2026-04-10 14:03     ` Breno Leitao [this message]
2026-03-31 11:00 ` [PATCH v2 2/3] mm/memory-failure: add panic_on_unrecoverable_memory_failure sysctl Breno Leitao
2026-04-07  2:57   ` Miaohe Lin
2026-04-10 14:17     ` Breno Leitao
2026-03-31 11:00 ` [PATCH v2 3/3] Documentation: document " Breno Leitao

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=adkCtR0LzJ7aWfm-@gmail.com \
    --to=leitao@debian.org \
    --cc=akpm@linux-foundation.org \
    --cc=corbet@lwn.net \
    --cc=kernel-team@meta.com \
    --cc=linmiaohe@huawei.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=nao.horiguchi@gmail.com \
    --cc=skhan@linuxfoundation.org \
    /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