[PATCH v6 0/6] Hardware Reduced Mode Cleanup for ACPI

Rafael J. Wysocki rjw at rjwysocki.net
Fri Jan 10 18:25:05 EST 2014


On Friday, January 10, 2014 03:52:14 PM al.stone at linaro.org wrote:
> From: Al Stone <al.stone at linaro.org>
> 
> This series of patches starts with Hanjun's patch to create a kernel
> config item for CONFIG_ACPI_REDUCED_HARDWARE [0].  Building on that, I
> then reviewed all of the code that touched any of several fields in the
> FADT that the OSPM is supposed to ignore when ACPI is in Hardware Reduced
> mode [1].  Any time there was a use of one of the fields to be ignored,
> I evaluated whether or not the code was implementing Hardware Reduced
> mode correctly.  Similarly, for each the flags in the FADT flags field
> that are to be ignored in Hardware Reduced mode, the kernel code was again
> scanned for proper usage.  The remainder of the patches are to fix all of
> the situations I could find where the kernel would not behave correctly
> in this ACPI mode.
> 
> These seem to work just fine on the RTSM model for ARMv7, both with and
> without ACPI enabled, and with and without ACPI_REDUCED_HARDWARE enabled;
> similarly for the FVP model for ARMv8.  The patches for ACPI on ARM
> hardware have been submitted elsewhere but they presume that reduced HW
> mode is functioning correctly.  In the meantime, there's no way I can think
> of to test all possible scenarios so feedback would be greatly appreciated.

Quite frankly, I'm seeing a pattern in this patchset that I'm not really
liking, which is making changes on a hunch.  Especially things like
changing code under #ifdef CONFIG_X86 and similar.

Can we please focus on making changes that are *known* to be necessary and
where we know *why* this is the case?

> [0] List at https://wiki.linaro.org/LEG/Engineering/Kernel/ACPI/AcpiReducedHw#Section_5:_ACPI_Software_Programming_Model
> [1] Please see the ACPI Specification v5.0 for details on Hardware Reduced
>     mode (sections 3.11.1, 4.1, 5.2.9, at a minimum).
> 
> Changes for v6:
>    -- Allow selection of CONFIG_ACPI_REDUCED_HARDWARE_ONLY to be more
>       architecture-independent, but make it harder to accidentally enable.
>    -- Make sure that ACPI ECs do not use the ACPI global lock when in
>       hardware reduced mode (I had missed this case in earlier reviews
>       of the kernel tree).
> 
> Changes for v5:
>    -- Clarify that if the kernel config option to build ACPI hardware reduced
>       mode is used, it builds a hardware reduced *only* kernel (i.e., full
>       legacy ACPI mode will no longer work).
> 
> Changes for v4:
>    -- Given the current state of ACPICA, disable CONFIG_ACPI_REDUCED_HARDWARE
>       for use on anything other than ARM.
>    -- Replaced #ifdefs with run-time checking for hardware reduced mode,
>       whenever possible
> 
> Changes for v3:
>    -- Modified enabling ACPI_REDUCED_HARDWARE in ACPICA when using
>       kernel config item CONFIG_ACPI_REDUCED_HARDWARE; now consistent
>       with ACPICA code base where needed
>    -- Enable X86 for CONFIG_ACPI_REDUCED_HARDWARE
>    -- Minimize bus master reload patching
>    -- Remove unneeded patch for dmi_check_system() (was 4/6)
>    -- Correct the patch for removing unneeded map/unmap of FADT fields
> 
> Changes for v2:
>    -- Remove patch that was outside of reduced HW mode changes
>    -- Simplify CONFIG_ACPI_REDUCED_HARDWARE in Kconfig
>    -- Simplify use of CONFIG_ACPI_REDUCED_HARDWARE in #ifdefs
>    -- Ensure changelogs are present
>    -- Combine and simplify previous patches 8 & 10
> 
> 
> Al Stone (6):
>   ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE_ONLY to enforce this ACPI
>     mode
>   ACPI: bus master reload not supported in reduced HW mode
>   ACPI: HW reduced mode does not allow use of the FADT sci_interrupt
>     field
>   ACPI: in HW reduced mode, using FADT PM information is not allowed.
>   ACPI: do not map/unmap memory regions for FADT entries in reduced HW
>     mode
>   ACPI: make sure ECs do not use the ACPI global lock
> 
>  drivers/acpi/Kconfig            | 12 ++++++++++++
>  drivers/acpi/bus.c              | 30 ++++++++++++++++--------------
>  drivers/acpi/ec.c               | 12 ++++++++++--
>  drivers/acpi/osl.c              | 38 +++++++++++++++++++-------------------
>  drivers/acpi/pci_link.c         |  2 ++
>  drivers/acpi/processor_idle.c   | 14 ++++++++++++--
>  include/acpi/platform/aclinux.h |  6 ++++++
>  7 files changed, 77 insertions(+), 37 deletions(-)
> 
> 

-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.



More information about the linux-arm-kernel mailing list