linux/Documentation/acpi
Srinivas Pandruvada eeb2d80d50 ACPI / LPIT: Add Low Power Idle Table (LPIT) support
Add functionality to read LPIT table, which provides:

 - Sysfs interface to read residency counters via
   /sys/devices/system/cpu/cpuidle/low_power_idle_cpu_residency_us
   /sys/devices/system/cpu/cpuidle/low_power_idle_system_residency_us

Here the count "low_power_idle_cpu_residency_us" shows the time spent
by CPU package in low power state.  This is read via MSR interface,
which points to MSR for PKG C10.

Here the count "low_power_idle_system_residency_us" show the count the
system was in low power state. This is read via MMIO interface. This
is mapped to SLP_S0 residency on modern Intel systems. This residency
is achieved only when CPU is in PKG C10 and all functional blocks are
in low power state.

It is possible that none of the above counters present or anyone of the
counter present or all counters present.

For example: On my Kabylake system both of the above counters present.
After suspend to idle these counts updated and prints:

 6916179
 6998564

This counter can be read by tools like turbostat to display. Or it can
be used to debug, if modern systems are reaching desired low power state.

 - Provides an interface to read residency counter memory address

   This address can be used to get the base address of PMC memory
   mapped IO.  This is utilized by intel_pmc_core driver to print
   more debug information.

In addition, to avoid code duplication to read iomem, removed the read of
iomem from acpi_os_read_memory() in osl.c and made a common function
acpi_os_read_iomem(). This new function is used for reading iomem in
in both osl.c and acpi_lpit.c.

Link: http://www.uefi.org/sites/default/files/resources/Intel_ACPI_Low_Power_S0_Idle.pdf
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2017-10-11 15:38:10 +02:00
..
apei Documentation/acpi/einj: Correct and streamline text 2015-02-19 12:32:22 +01:00
dsd ACPI / DSD: Document references, ports and endpoints 2017-03-29 00:00:29 +02:00
acpi-lid.txt Revert "ACPI / button: Remove lid_init_state=method mode" 2017-05-12 23:14:59 +02:00
aml-debugger.txt Documentation: acpi: Fix typos 2017-03-17 13:00:41 -06:00
debug.txt
DSD-properties-rules.txt ACPI / property: Document usage rules for _DSD properties 2016-12-06 02:13:28 +01:00
dsdt-override.txt ACPI / PM / Documentation: Replace outdated project links and addresses 2013-10-11 13:22:43 +02:00
enumeration.txt Documentation: acpi: Fix typos 2017-03-17 13:00:41 -06:00
gpio-properties.txt gpio: acpi: Explain how to get GPIO descriptors in ACPI case 2017-05-29 11:20:00 +02:00
i2c-muxes.txt i2c: add ACPI support for I2C mux ports 2015-10-25 15:49:46 +01:00
initrd_table_override.txt ACPI / tables: Convert initrd table override to table upgrade mechanism 2016-04-18 23:59:09 +02:00
linuxized-acpica.txt ACPI / doc: linuxized-acpica.txt: fix typos 2017-04-19 12:14:04 +02:00
lpit.txt ACPI / LPIT: Add Low Power Idle Table (LPIT) support 2017-10-11 15:38:10 +02:00
method-customizing.txt scripts/spelling.txt: add "overrided" pattern and fix typo instances 2017-02-27 18:43:47 -08:00
method-tracing.txt scripts/spelling.txt: add "followings" pattern and fix typo instances 2017-02-27 18:43:47 -08:00
namespace.txt ACPI / scan: Add acpi_device objects for all device nodes in the namespace 2013-11-22 21:54:37 +01:00
osi.txt ACPI: Document _OSI and _REV for Linux BIOS writers 2016-12-03 02:36:26 +01:00
scan_handlers.txt ACPI / scan: Introduce struct acpi_scan_handler 2013-01-30 14:27:29 +01:00
ssdt-overlays.txt ACPI: add support for loading SSDTs via configfs 2016-07-08 21:52:36 +02:00
video_extension.txt docs: fix locations of several documents that got moved 2016-10-24 08:12:35 -02:00