• Dan Williams's avatar
    efi: Common enable/disable infrastructure for EFI soft reservation · b617c526
    Dan Williams authored
    UEFI 2.8 defines an EFI_MEMORY_SP attribute bit to augment the
    interpretation of the EFI Memory Types as "reserved for a specific
    purpose".
    
    The proposed Linux behavior for specific purpose memory is that it is
    reserved for direct-access (device-dax) by default and not available for
    any kernel usage, not even as an OOM fallback.  Later, through udev
    scripts or another init mechanism, these device-dax claimed ranges can
    be reconfigured and hot-added to the available System-RAM with a unique
    node identifier. This device-dax management scheme implements "soft" in
    the "soft reserved" designation by allowing some or all of the
    reservation to be recovered as typical memory. This policy can be
    disabled at compile-time with CONFIG_EFI_SOFT_RESERVE=n, or runtime with
    efi=nosoftreserve.
    
    As for this patch, define the common helpers to determine if the
    EFI_MEMORY_SP attribute should be honored. The determination needs to be
    made early to prevent the kernel from being loaded into soft-reserved
    memory, or otherwise allowing early allocations to land there. Follow-on
    changes are needed per architecture to leverage these helpers in their
    respective mem-init paths.
    Reviewed-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    b617c526
efi-stub-helper.c 23.5 KB