All of lore.kernel.org
 help / color / mirror / Atom feed
From: Breno Leitao <leitao@debian.org>
To: Shaikh Kamaluddin <shaikhkamal2012@gmail.com>
Cc: Ard Biesheuvel <ardb@kernel.org>,
	 Ilias Apalodimas <ilias.apalodimas@linaro.org>,
	Miaohe Lin <linmiaohe@huawei.com>,
	 Naoya Horiguchi <nao.horiguchi@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	kas@kernel.org,  kexec@lists.infradead.org,
	David Hildenbrand <david@kernel.org>,
	 Lorenzo Stoakes <ljs@kernel.org>,
	"Liam R. Howlett" <liam@infradead.org>,
	 Vlastimil Babka <vbabka@kernel.org>,
	Mike Rapoport <rppt@kernel.org>,
	 Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>,
	 Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	 Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	 Brendan Jackman <brendan.jackman@linux.dev>,
	Johannes Weiner <hannes@cmpxchg.org>, Zi Yan <ziy@nvidia.com>,
	 Oscar Salvador <osalvador@suse.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	 "Rafael J. Wysocki" <rafael@kernel.org>,
	Danilo Krummrich <dakr@kernel.org>,
	hannes@cmpxchg.or,  shakeel.butt@linux.dev,
	linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org,
	 linux-mm@kvack.org, rmikey@meta.com, riel@surriel.com,
	harry@kernel.org,  linux-cxl@vger.kernel.org,
	driver-core@lists.linux.dev, kernel-team@meta.com
Subject: Re: [PATCH v5 8/9] mm/memory-failure: add hwpoison_boot_page() to flag an inherited frame
Date: Mon, 21 Sep 2026 06:41:27 -0700	[thread overview]
Message-ID: <arEz7lp9_nRGwHPm@gmail.com> (raw)
In-Reply-To: <aq5jyXzuDAANeCJs@acer-nitro-anv15-41>

On Sat, Sep 19, 2026 at 03:58:25PM +0530, Shaikh Kamaluddin wrote:
> On Tue, Sep 15, 2026 at 05:53:42AM -0700, Breno Leitao wrote:
> > +
> > +	/*
> > +	 * The per memory block half of num_poisoned_pages_inc() has no block to
> > +	 * find at boot, and divides by zero looking for one. A hotplugged block
> > +	 * is already there.
> > +	 */
> > +	if (context == MEMINIT_HOTPLUG)
> > +		num_poisoned_pages_inc(pfn);
> > +	else
> > +		atomic_long_inc(&num_poisoned_pages);
> > +}
> 
> Hi Breno,
> 
> num_poisoned_pages_inc() currently assumes that the supplied PFN can
> be used for per-memory-block accounting and therefore calls
> memblk_nr_poison_inc() unconditionally. The early-boot path needs
> global-only accounting because the memory-block infrastructure is not
> initialized yet.
> 
> Could num_poisoned_pages_inc() treat -1UL as global-only accounting,
> matching num_poisoned_pages_sub()?
> 
> Example as below:
> 
> void num_poisoned_pages_inc(unsigned long pfn)
> {
> 	atomic_long_inc(&num_poisoned_pages);
> 
> 	if (pfn != -1UL)
> 		memblk_nr_poison_inc(pfn);
> }
> 
> 
> The caller could then use:
> 
> num_poisoned_pages_inc(context == MEMINIT_HOTPLUG ? pfn : -1UL);
> 
> This would keep updates to `num_poisoned_pages` encapsulated rather than
> manipulating the counter directly here, while also making the increment
> and decrement interfaces consistent.

Good point, and it is a better fit than what I have.

-1UL already means "global only" on the sub side, and it is not just a
convention on paper: remove_memory_block_devices() calls
num_poisoned_pages_sub(-1UL, memblk_nr_poison(mem)) when a block goes
away. Teaching inc() the same thing costs a branch and keeps
num_poisoned_pages behind the two helpers instead of growing a third
place that pokes the atomic directly.

I will fold this into v6:

      void num_poisoned_pages_inc(unsigned long pfn)
      {
              atomic_long_inc(&num_poisoned_pages);

              if (pfn != -1UL)
                      memblk_nr_poison_inc(pfn);
      }

Thanks for the review and suggestion,
--breno


  reply	other threads:[~2026-09-21 13:42 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-15 12:53 [PATCH v5 0/9] mm/memory-failure: keep hardware-poisoned pages out of the next kexec Breno Leitao
2026-09-15 12:53 ` [PATCH v5 1/9] mm/page_alloc: factor out the accept-and-free tail of __free_pages_core() Breno Leitao
2026-09-15 12:57   ` sashiko-bot
2026-09-15 12:53 ` [PATCH v5 2/9] mm/memory-failure: efi: add the LINUX_EFI_POISONED_MEMORY configuration table Breno Leitao
2026-09-15 13:05   ` sashiko-bot
2026-09-15 12:53 ` [PATCH v5 3/9] mm/memory-failure: libstub: install the poisoned-memory EFI table Breno Leitao
2026-09-15 13:15   ` sashiko-bot
2026-09-15 14:00     ` Breno Leitao
2026-09-16 15:39   ` Usama Arif
2026-09-17 10:53     ` Breno Leitao
2026-09-15 12:53 ` [PATCH v5 4/9] mm/memory-failure: efi: adopt the inherited poisoned-memory table Breno Leitao
2026-09-15 13:24   ` sashiko-bot
2026-09-15 12:53 ` [PATCH v5 5/9] mm/memory-failure: efi: record hardware-poisoned frames into the " Breno Leitao
2026-09-15 13:36   ` sashiko-bot
2026-09-15 14:33     ` Breno Leitao
2026-09-15 12:53 ` [PATCH v5 6/9] mm/memory-failure: efi: answer whether a range is poisoned Breno Leitao
2026-09-15 13:45   ` sashiko-bot
2026-09-16  6:44     ` David Hildenbrand (Arm)
2026-09-18 15:27       ` Breno Leitao
2026-09-18 15:53         ` Harry Yoo
2026-09-18 20:02           ` David Hildenbrand (Arm)
2026-09-15 12:53 ` [PATCH v5 7/9] drivers/base/memory: count inherited poisoned frames into the block Breno Leitao
2026-09-15 13:59   ` sashiko-bot
2026-09-16  6:48   ` David Hildenbrand (Arm)
2026-09-16  9:35     ` Breno Leitao
2026-09-16 14:51       ` David Hildenbrand (Arm)
2026-09-17 13:01         ` Breno Leitao
2026-09-18 12:18           ` David Hildenbrand (Arm)
2026-09-18 15:22             ` Breno Leitao
2026-09-18 20:16               ` David Hildenbrand (Arm)
2026-09-21 14:31                 ` Breno Leitao
2026-09-22 11:33                   ` David Hildenbrand (Arm)
2026-09-22 12:34                     ` Breno Leitao
2026-09-24 11:22                       ` David Hildenbrand (Arm)
2026-09-22 12:51                     ` Kiryl Shutsemau
2026-09-22 13:45                       ` Harry Yoo
2026-09-22 13:53                       ` David Hildenbrand (Arm)
2026-09-15 12:53 ` [PATCH v5 8/9] mm/memory-failure: add hwpoison_boot_page() to flag an inherited frame Breno Leitao
2026-09-15 14:11   ` sashiko-bot
2026-09-19 10:28   ` Shaikh Kamaluddin
2026-09-21 13:41     ` Breno Leitao [this message]
2026-09-15 12:53 ` [PATCH v5 9/9] mm/memory-failure: keep inherited poisoned frames out of the buddy allocator Breno Leitao
2026-09-15 14:25   ` sashiko-bot
2026-09-16  8:32   ` Vlastimil Babka (SUSE)
2026-09-22  6:27 ` [PATCH v5 0/9] mm/memory-failure: keep hardware-poisoned pages out of the next kexec Miaohe Lin
2026-09-22  9:14   ` Breno Leitao
2026-09-22  9:29     ` Miaohe Lin
2026-09-22 10:39       ` 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=arEz7lp9_nRGwHPm@gmail.com \
    --to=leitao@debian.org \
    --cc=akpm@linux-foundation.org \
    --cc=ardb@kernel.org \
    --cc=bp@alien8.de \
    --cc=brendan.jackman@linux.dev \
    --cc=dakr@kernel.org \
    --cc=dave.hansen@linux.intel.com \
    --cc=david@kernel.org \
    --cc=driver-core@lists.linux.dev \
    --cc=gregkh@linuxfoundation.org \
    --cc=hannes@cmpxchg.or \
    --cc=hannes@cmpxchg.org \
    --cc=harry@kernel.org \
    --cc=hpa@zytor.com \
    --cc=ilias.apalodimas@linaro.org \
    --cc=kas@kernel.org \
    --cc=kernel-team@meta.com \
    --cc=kexec@lists.infradead.org \
    --cc=liam@infradead.org \
    --cc=linmiaohe@huawei.com \
    --cc=linux-cxl@vger.kernel.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ljs@kernel.org \
    --cc=mhocko@suse.com \
    --cc=mingo@redhat.com \
    --cc=nao.horiguchi@gmail.com \
    --cc=osalvador@suse.de \
    --cc=rafael@kernel.org \
    --cc=riel@surriel.com \
    --cc=rmikey@meta.com \
    --cc=rppt@kernel.org \
    --cc=shaikhkamal2012@gmail.com \
    --cc=shakeel.butt@linux.dev \
    --cc=surenb@google.com \
    --cc=tglx@kernel.org \
    --cc=vbabka@kernel.org \
    --cc=x86@kernel.org \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.