On Fri, Sep 13, 2019 at 6:02 AM Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> wrote: > > On Fri, 30 Aug 2019 at 03:07, Dan Williams <dan.j.williams@xxxxxxxxx> wrote: > > > > Given that EFI_MEMORY_SP is platform BIOS policy descision for marking > > decision Fixed. > > > memory ranges as "reserved for a specific purpose" there will inevitably > > be scenarios where the BIOS omits the attribute in situations where it > > is desired. Unlike other attributes if the OS wants to reserve this > > memory from the kernel the reservation needs to happen early in init. So > > early, in fact, that it needs to happen before e820__memblock_setup() > > which is a pre-requisite for efi_fake_memmap() that wants to allocate > > memory for the updated table. > > > > Introduce an x86 specific efi_fake_memmap_early() that can search for > > attempts to set EFI_MEMORY_SP via efi_fake_mem and update the e820 table > > accordingly. > > > > Is this early enough? The EFI stub runs before this, and allocates > memory as well. Unless I'm missing something the stub only allocates where the kernel will land. That should be handled by the new mem_avoid_memmap() extensions to consider "efi_fake_mem" in its exclusions.