Re: [PATCH v2 6/6] efi: respect the poisoned pages coming from previous kernel

Kiryl Shutsemau <[email protected]>
Newsgroups org.kernel.vger.linux-efi,org.infradead.lists.kexec,org.kernel.vger.linux-kernel,org.kvack.linux-mm
Message-ID <aohldTtzE2GJ76md@thinkstation>
On Fri, Aug 21, 2026 at 07:03:06AM -0700, Breno Leitao wrote:
> On Fri, Aug 21, 2026 at 01:13:55PM +0100, Kiryl Shutsemau wrote:
> > On Fri, Aug 21, 2026 at 03:06:06AM -0700, Breno Leitao wrote:
> > > +	/* Reserve the table itself so it survives a further kexec. */
> > > +	memblock_reserve(PAGE_ALIGN_DOWN(ppm),
> > > +			 PAGE_ALIGN(ppm + sizeof(*pm) + bitmap_size) -
> > > +			 PAGE_ALIGN_DOWN(ppm));
> > 
> > Hm. I don't think it is enough.
> > 
> > On x86, kernel doesn't keep memblock around after boot (see
> > CONFIG_ARCH_KEEP_MEMBLOCK). Reserving in memblock exclude the memory
> > from page allocator. But kexec can place the image there.
> 
> You mean the third kexec?
> 
> 1) Kernel A hits an ECC error and marks page X poisoned.
> 2) Kernel A kexecs into kernel B, which won't use that page since
>    it's in EFI_POISONED_PAGE and memblock-reserved.
> 3) Kernel B kexecs into kernel C, which doesn't respect
>    EFI_POISONED_PAGE.
> 
> Is this the scenario you mean?

No. I think nothing prevents kernel B from putting kernel C image into
the reserved space in !CONFIG_ARCH_KEEP_MEMBLOCK case.

Kernel B excludes poisoned memory from buddy allocator, but kexec
doesn't care about this when look for placement for the next image.

-- 
  Kiryl Shutsemau / Kirill A. Shutemov
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.