Re: EFI reboot vs. ACPI reboot (was: Re: [tip:x86/urgent] x86/reboot, efi: Use EFI reboot for Acer TravelMate X514-51T)

From: Ingo Molnar
Date: Wed Apr 17 2019 - 12:37:38 EST



* hpa@xxxxxxxxx <hpa@xxxxxxxxx> wrote:

> > Just to check, you mean: EFI reboot (and shutdown) become the default
> > methods when the machine is booted in EFI mode, and EFI stuff has not
> > been disabled with a kernel parameter?
> > Even when running in full hardware ACPI mode.

No, I still think "early" EFI is historically better with ACPI reboot.

But can we find a firmware flag perhaps that will *not* result in EFI
reboot being turned off?

> This, I believe, is known to not work.

Yeah, I bet so.

My problem is that the code appears to have the wrong assumptions:

/*
* For most modern platforms the preferred method of powering off is via
* ACPI. However, there are some that are known to require the use of
* EFI runtime services and for which ACPI does not work at all.
*
* Using EFI is a last resort, to be used only if no other option
* exists.
*/
bool efi_reboot_required(void)
{
if (!acpi_gbl_reduced_hardware)
return false;

efi_reboot_quirk_mode = EFI_RESET_WARM;
return true;
}


At minimum the comment is stale: "modern" platforms, *especially* when
the only bootup method is EFI, as in the ACER laptop case, I think the
preferred reboot method is absolutely an EFI reboot - and it's probably
what Windows uses too.

The question is, is acpi_gbl_reduced_hardware false on the Acer
TravelMate X514-51T? I think it has to be, for the quirk to make sense -
if it's true then efi_reboot_required() would set the reboot method to
EFI.

I.e. we seem to have a new category of systems that are advertising
themselves as 'full ACPI compliant', which are NOT old EFI systems, but
modern EFI systems.

Is there some good way to detect these - such as ACPI version or
something?

Thanks,

Ingo