Re: [PATCH v2 0/2] efi: arm64: Introduce /proc/efi/memreserve to tell the persistent pages

From: Ard Biesheuvel
Date: Wed Dec 04 2019 - 04:51:22 EST


On Tue, 3 Dec 2019 at 20:14, Masayoshi Mizuma <msys.mizuma@xxxxxxxxx> wrote:
>
> From: Masayoshi Mizuma <m.mizuma@xxxxxxxxxxxxxx>
>
> kexec reboot sometime fails in early boot sequence on aarch64 machine.
> That is because kexec overwrites the LPI property tables and pending
> tables with the initrd.
>
> To avoid the overwrite, introduce /proc/efi/memreserve to tell the
> tables region to kexec so that kexec can avoid the memory region to
> locate initrd.
>
> kexec also needs a patch to handle /proc/efi/memreserve. I'm preparing
> the patch for kexec.
>
> Changelog
> v2: - Change memreserve file location from sysfs to procfs.
> memreserve may exceed the PAGE_SIZE in case efi_memreserve_root
> has a lot of entries. So we cannot use sysfs_kf_seq_show().
> Use seq_printf() in procfs instead.
>
> Masayoshi Mizuma (2):
> efi: add /proc/efi directory
> efi: arm64: Introduce /proc/efi/memreserve to tell the persistent
> pages
>

Apologies for the tardy response.

Adding /proc/efi is really out of the question. *If* we add any
special files to expose this information, it should be under sysfs.

However, this is still only a partial solution, since it only solves
the problem for userspace based kexec, and we need something for
kexec_file_load() as well.

The fundamental issue here is that /proc/iomem apparently lacks the
entries that describe these regions as 'reserved', so we should try to
address that instead.