mm/hwpoison: persist poisoned PFN list across kexec via KHO [RFC]
Rik van Riel
riel at surriel.com
Wed Jun 24 07:44:20 PDT 2026
On Wed, 2026-06-24 at 15:40 +0200, Pratyush Yadav wrote:
>
> Also, what happens on cold reboot? If the HW does not remember bad
> pages, won't the kernel be in the same position? How does it know the
> bad pages on a cold boot?
Some modern server hardware will simply unmap known
bad pages from the physical page map, so they will
not be exposed to the OS after a cold reboot.
The hardware keeps a log of uncorrectable memory
errors somewhere in memory, for example in the SEL.
>
>
> >
> > This PoC
> > ========
> >
> > * Makes hardware-poisoned pages survive a kexec, using KHO (Kexec
> > HandOver) to carry the poison list between kernels.
> >
> > * Producer: hooks num_poisoned_pages_inc()/_sub() - the single
> > chokepoint for every poison/unpoison event - and records each
> > poisoned PFN into a vmalloc array that KHO preserves across the
> > kexec, described by a small versioned "hwpoison" subtree.
>
> More of an implementation detail, but with vmalloc array, what if you
> have too many poisoned pages?
> >
If a very large amount of memory is broken, you
should probably just repair the hardware.
Page poisoning is good for localized memory
failures, but not for failures that extend across
much of a memory chip.
>
>
>
--
All Rights Reversed.
More information about the kexec
mailing list