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

From: Ard Biesheuvel
Date: Wed Apr 17 2019 - 11:45:16 EST


On Wed, 17 Apr 2019 at 08:16, <hpa@xxxxxxxxx> wrote:
>
> On April 17, 2019 5:38:41 AM PDT, Daniel Drake <drake@xxxxxxxxxxxx> wrote:
> >On Wed, Apr 17, 2019 at 2:16 PM Ingo Molnar <mingo@xxxxxxxxxx> wrote:
> >> Ok, so acpi_gbl_reduced_hardware is set when the ... 'reduced
> >hardware'
> >> bit is set:
> >>
> >> acpi_gbl_reduced_hardware = FALSE;
> >> if (acpi_gbl_FADT.flags & ACPI_FADT_HW_REDUCED) {
> >> acpi_gbl_reduced_hardware = TRUE;
> >> }
> >>
> >>
> >> which is described as:
> >>
> >> #define ACPI_FADT_HW_REDUCED (1<<20) /* 20: [V5] ACPI
> >hardware is not implemented (ACPI 5.0) */
> >>
> >> That seems counter-intuitive to me: if no full ACPI hardware is
> >> implemented then we should assume reduced ACPI functionality, i.e. if
> >the
> >> EFI runtime is otherwise available we should default to it.
> >
> >It's a bit confusing, but my loose understanding is that previous
> >versions of the ACPI spec required system implementors to implement
> >the whole thing; but that's increasingly impractical today, e.g. with
> >ARM systems coming along, which do not gel well with some of the
> >historical x86-rooted design aspects that spilled over into ACPI. The
> >V5 spec introduces reduced mode as an opt-in new feature, but for
> >compatibility with pre-V5 implementations it needs to consider "full
> >hardware" mode as the default.
> >
> >> Feel free to send a patch that makes EFI reboot the default one under
> >> these circumstances,
> >
> >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.
> >
> >Thanks
> >Daniel
>
> This, I believe, is known to not work.

It definitely used to be the case that EFI reboot was unreliable, but
I don't know the details. I have added Sai to cc, he may be able to
provide a bit more context here, since he added the code to deal with
page faults during EFI runtime service invocations (which was inspired
by a EFI reboot issue IIRC). That feature may have improved the
situation, but I am not confident at all that it fixes all systems.