From: Andrew Morton <akpm@linux-foundation.org>
To: Breno Leitao <leitao@debian.org>
Cc: Miaohe Lin <linmiaohe@huawei.com>,
Naoya Horiguchi <nao.horiguchi@gmail.com>,
Paul Walmsley <pjw@kernel.org>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Alexandre Ghiti <alex@ghiti.fr>,
david@kernel.org, SJ Park <sj@kernel.org>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-riscv@lists.infradead.org, kernel-team@meta.com
Subject: Re: [PATCH v2] tools/mm: add hwpoison-panic tool
Date: Sat, 29 Aug 2026 19:37:58 -0700 [thread overview]
Message-ID: <20260829193758.b251f3c89f8201bdc585a305@linux-foundation.org> (raw)
In-Reply-To: <20260803-memory_failure_rewrite_test-v2-1-ed020ce42129@debian.org>
On Mon, 03 Aug 2026 04:31:20 -0700 Breno Leitao <leitao@debian.org> wrote:
> Add a tool that enables the vm.panic_on_unrecoverable_memory_failure
> sysctl, picks a kernel-owned PFN and writes its physical address to
> hard_offline_page. Three page kinds are selectable with -k: rodata
> (default), slab or pgtable. In all cases the host should panic.
>
> Example:
>
> # ./hwpoison-panic -k slab --yes-panic-my-kernel
> injecting hwpoison at phys 0x100032000 (pfn 0x100032, kind=slab)
> expecting kernel panic: 'Memory failure: <pfn>: unrecoverable page'
>
> In dmesg, you will see:
>
> Memory failure: 0x100032: unhandlable page.
> Memory failure: 0x100032: recovery action for reserved kernel page: Ignored
> Kernel panic - not syncing: Memory failure: 0x100032: unrecoverable page
>
> This lives in tools/mm rather than selftests/mm because every successful
> run crashes the machine, which is not something to run from CI.
I wonder if we can fix this. Add a knob which tells the kernel not to
panic/oops/crash/etc. Instead it sends a message "i tried to crash but
you told me not to" and proceeds.
Set that knob around your hwpoison-panic tool and voila, it's now a
selftest.
Wondering if we can sneakily use fault-injection to do this. Add a new
i_should_crash_now() and use fault-injection to make this function
"fail", by returning zero. Or something else.
WARNING: multiple messages have this Message-ID (diff)
From: Andrew Morton <akpm@linux-foundation.org>
To: Breno Leitao <leitao@debian.org>
Cc: Miaohe Lin <linmiaohe@huawei.com>,
Naoya Horiguchi <nao.horiguchi@gmail.com>,
Paul Walmsley <pjw@kernel.org>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Alexandre Ghiti <alex@ghiti.fr>,
david@kernel.org, SJ Park <sj@kernel.org>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-riscv@lists.infradead.org, kernel-team@meta.com
Subject: Re: [PATCH v2] tools/mm: add hwpoison-panic tool
Date: Sat, 29 Aug 2026 19:37:58 -0700 [thread overview]
Message-ID: <20260829193758.b251f3c89f8201bdc585a305@linux-foundation.org> (raw)
In-Reply-To: <20260803-memory_failure_rewrite_test-v2-1-ed020ce42129@debian.org>
On Mon, 03 Aug 2026 04:31:20 -0700 Breno Leitao <leitao@debian.org> wrote:
> Add a tool that enables the vm.panic_on_unrecoverable_memory_failure
> sysctl, picks a kernel-owned PFN and writes its physical address to
> hard_offline_page. Three page kinds are selectable with -k: rodata
> (default), slab or pgtable. In all cases the host should panic.
>
> Example:
>
> # ./hwpoison-panic -k slab --yes-panic-my-kernel
> injecting hwpoison at phys 0x100032000 (pfn 0x100032, kind=slab)
> expecting kernel panic: 'Memory failure: <pfn>: unrecoverable page'
>
> In dmesg, you will see:
>
> Memory failure: 0x100032: unhandlable page.
> Memory failure: 0x100032: recovery action for reserved kernel page: Ignored
> Kernel panic - not syncing: Memory failure: 0x100032: unrecoverable page
>
> This lives in tools/mm rather than selftests/mm because every successful
> run crashes the machine, which is not something to run from CI.
I wonder if we can fix this. Add a knob which tells the kernel not to
panic/oops/crash/etc. Instead it sends a message "i tried to crash but
you told me not to" and proceeds.
Set that knob around your hwpoison-panic tool and voila, it's now a
selftest.
Wondering if we can sneakily use fault-injection to do this. Add a new
i_should_crash_now() and use fault-injection to make this function
"fail", by returning zero. Or something else.
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2026-08-30 2:38 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-03 11:31 [PATCH v2] tools/mm: add hwpoison-panic tool Breno Leitao
2026-08-03 11:31 ` Breno Leitao
2026-08-13 7:32 ` Miaohe Lin
2026-08-13 7:32 ` Miaohe Lin
2026-08-13 10:19 ` Breno Leitao
2026-08-13 10:19 ` Breno Leitao
2026-08-30 2:37 ` Andrew Morton [this message]
2026-08-30 2:37 ` Andrew Morton
2026-09-07 12:42 ` David Hildenbrand (Arm)
2026-09-07 12:42 ` David Hildenbrand (Arm)
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=20260829193758.b251f3c89f8201bdc585a305@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=alex@ghiti.fr \
--cc=aou@eecs.berkeley.edu \
--cc=david@kernel.org \
--cc=kernel-team@meta.com \
--cc=leitao@debian.org \
--cc=linmiaohe@huawei.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-riscv@lists.infradead.org \
--cc=nao.horiguchi@gmail.com \
--cc=palmer@dabbelt.com \
--cc=pjw@kernel.org \
--cc=sj@kernel.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 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.