From: Naoya Horiguchi <naoya.horiguchi@linux.dev>
To: Oscar Salvador <osalvador@suse.de>
Cc: linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
Miaohe Lin <linmiaohe@huawei.com>,
David Hildenbrand <david@redhat.com>,
Mike Kravetz <mike.kravetz@oracle.com>,
Yang Shi <shy828301@gmail.com>,
Muchun Song <songmuchun@bytedance.com>,
Jane Chu <jane.chu@oracle.com>,
Naoya Horiguchi <naoya.horiguchi@nec.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v6 4/4] mm/hwpoison: introduce per-memory_block hwpoison counter
Date: Thu, 13 Oct 2022 19:09:43 +0900 [thread overview]
Message-ID: <20221013100943.GA1505152@u2004> (raw)
In-Reply-To: <Y0fNaYGvnMdwHkg1@localhost.localdomain>
On Thu, Oct 13, 2022 at 10:33:45AM +0200, Oscar Salvador wrote:
> On Fri, Oct 07, 2022 at 10:07:06AM +0900, Naoya Horiguchi wrote:
> > From: Naoya Horiguchi <naoya.horiguchi@nec.com>
> >
> > Currently PageHWPoison flag does not behave well when experiencing memory
> > hotremove/hotplug. Any data field in struct page is unreliable when the
> > associated memory is offlined, and the current mechanism can't tell whether
> > a memory block is onlined because a new memory devices is installed or
> > because previous failed offline operations are undone. Especially if
> > there's a hwpoisoned memory, it's unclear what the best option is.
> >
> > So introduce a new mechanism to make struct memory_block remember that
> > a memory block has hwpoisoned memory inside it. And make any online event
> > fail if the onlining memory block contains hwpoison. struct memory_block
> > is freed and reallocated over ACPI-based hotremove/hotplug, but not over
> > sysfs-based hotremove/hotplug. So the new counter can distinguish these
> > cases.
> >
> > Signed-off-by: Naoya Horiguchi <naoya.horiguchi@nec.com>
> > Reported-by: kernel test robot <lkp@intel.com>
>
> I glanzed over it and looks good overall.
> Have a small question though:
Thank you for looking.
>
> > @@ -864,6 +878,7 @@ void remove_memory_block_devices(unsigned long start, unsigned long size)
> > mem = find_memory_block_by_id(block_id);
> > if (WARN_ON_ONCE(!mem))
> > continue;
> > + num_poisoned_pages_sub(-1UL, memblk_nr_poison(mem));
>
> Why does num_poisoned_pages_sub() have to make this distinction (!-1 == -1)
> for the hot-remove stage?
The first argument is used to find memory_block including the given pfn.
And in the above context remove_memory_block_devices() already has the
pointer "mem", so recalcurating it looked to me not necessary. Moreover,
this code is about to free the memory_block so updating the counter inside
it can be avoided. This is just a tiny optimization, and there can be
better option.
Thanks,
Naoya Horiguchi
next prev parent reply other threads:[~2022-10-13 10:09 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-07 1:07 [PATCH v6 0/4] mm, hwpoison: improve handling workload related to hugetlb and memory_hotplug Naoya Horiguchi
2022-10-07 1:07 ` [PATCH v6 1/4] mm,hwpoison,hugetlb,memory_hotplug: hotremove memory section with hwpoisoned hugepage Naoya Horiguchi
2022-10-13 14:17 ` Oscar Salvador
2022-10-15 1:58 ` Miaohe Lin
2022-10-17 7:24 ` HORIGUCHI NAOYA(堀口 直也)
2022-10-17 13:29 ` Miaohe Lin
2022-10-07 1:07 ` [PATCH v6 2/4] mm/hwpoison: move definitions of num_poisoned_pages_* to memory-failure.c Naoya Horiguchi
2022-10-13 14:31 ` Oscar Salvador
2022-10-14 6:38 ` Naoya Horiguchi
2022-10-07 1:07 ` [PATCH v6 3/4] mm/hwpoison: pass pfn to num_poisoned_pages_*() Naoya Horiguchi
2022-10-07 1:07 ` [PATCH v6 4/4] mm/hwpoison: introduce per-memory_block hwpoison counter Naoya Horiguchi
2022-10-07 4:34 ` HORIGUCHI NAOYA(堀口 直也)
2022-10-13 8:33 ` Oscar Salvador
2022-10-13 10:09 ` Naoya Horiguchi [this message]
2022-10-15 2:28 ` Miaohe Lin
2022-10-17 11:43 ` HORIGUCHI NAOYA(堀口 直也)
2022-10-17 13:31 ` Miaohe Lin
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=20221013100943.GA1505152@u2004 \
--to=naoya.horiguchi@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=david@redhat.com \
--cc=jane.chu@oracle.com \
--cc=linmiaohe@huawei.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mike.kravetz@oracle.com \
--cc=naoya.horiguchi@nec.com \
--cc=osalvador@suse.de \
--cc=shy828301@gmail.com \
--cc=songmuchun@bytedance.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.