-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branches 'acpi-cppc', 'acpi-misc', 'acpi-battery' and 'acpi-ac'
* acpi-cppc: mailbox: PCC: erroneous error message when parsing ACPI PCCT ACPI / CPPC: Fix invalid PCC channel status errors ACPI / CPPC: Document CPPC sysfs interface cpufreq / CPPC: Support for CPPC v3 ACPI / CPPC: Check for valid PCC subspace only if PCC is used ACPI / CPPC: Add support for CPPC v3 * acpi-misc: ACPI: Add missing prototype_for arch_post_acpi_subsys_init() ACPI: add missing newline to printk * acpi-battery: ACPI / battery: Add quirk to avoid checking for PMIC with native driver ACPI / battery: Ignore AC state in handle_discharging on systems where it is broken ACPI / battery: Add handling for devices which wrongly report discharging state ACPI / battery: Remove initializer for unused ident dmi_system_id ACPI / AC: Remove initializer for unused ident dmi_system_id * acpi-ac: ACPI / AC: Add quirk to avoid checking for PMIC with native driver
- Loading branch information
Showing
9 changed files
with
400 additions
and
137 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
|
||
Collaborative Processor Performance Control (CPPC) | ||
|
||
CPPC defined in the ACPI spec describes a mechanism for the OS to manage the | ||
performance of a logical processor on a contigious and abstract performance | ||
scale. CPPC exposes a set of registers to describe abstract performance scale, | ||
to request performance levels and to measure per-cpu delivered performance. | ||
|
||
For more details on CPPC please refer to the ACPI specification at: | ||
|
||
http://uefi.org/specifications | ||
|
||
Some of the CPPC registers are exposed via sysfs under: | ||
|
||
/sys/devices/system/cpu/cpuX/acpi_cppc/ | ||
|
||
for each cpu X | ||
|
||
-------------------------------------------------------------------------------- | ||
|
||
$ ls -lR /sys/devices/system/cpu/cpu0/acpi_cppc/ | ||
/sys/devices/system/cpu/cpu0/acpi_cppc/: | ||
total 0 | ||
-r--r--r-- 1 root root 65536 Mar 5 19:38 feedback_ctrs | ||
-r--r--r-- 1 root root 65536 Mar 5 19:38 highest_perf | ||
-r--r--r-- 1 root root 65536 Mar 5 19:38 lowest_freq | ||
-r--r--r-- 1 root root 65536 Mar 5 19:38 lowest_nonlinear_perf | ||
-r--r--r-- 1 root root 65536 Mar 5 19:38 lowest_perf | ||
-r--r--r-- 1 root root 65536 Mar 5 19:38 nominal_freq | ||
-r--r--r-- 1 root root 65536 Mar 5 19:38 nominal_perf | ||
-r--r--r-- 1 root root 65536 Mar 5 19:38 reference_perf | ||
-r--r--r-- 1 root root 65536 Mar 5 19:38 wraparound_time | ||
|
||
-------------------------------------------------------------------------------- | ||
|
||
* highest_perf : Highest performance of this processor (abstract scale). | ||
* nominal_perf : Highest sustained performance of this processor (abstract scale). | ||
* lowest_nonlinear_perf : Lowest performance of this processor with nonlinear | ||
power savings (abstract scale). | ||
* lowest_perf : Lowest performance of this processor (abstract scale). | ||
|
||
* lowest_freq : CPU frequency corresponding to lowest_perf (in MHz). | ||
* nominal_freq : CPU frequency corresponding to nominal_perf (in MHz). | ||
The above frequencies should only be used to report processor performance in | ||
freqency instead of abstract scale. These values should not be used for any | ||
functional decisions. | ||
|
||
* feedback_ctrs : Includes both Reference and delivered performance counter. | ||
Reference counter ticks up proportional to processor's reference performance. | ||
Delivered counter ticks up proportional to processor's delivered performance. | ||
* wraparound_time: Minimum time for the feedback counters to wraparound (seconds). | ||
* reference_perf : Performance level at which reference performance counter | ||
accumulates (abstract scale). | ||
|
||
-------------------------------------------------------------------------------- | ||
|
||
Computing Average Delivered Performance | ||
|
||
Below describes the steps to compute the average performance delivered by taking | ||
two different snapshots of feedback counters at time T1 and T2. | ||
|
||
T1: Read feedback_ctrs as fbc_t1 | ||
Wait or run some workload | ||
T2: Read feedback_ctrs as fbc_t2 | ||
|
||
delivered_counter_delta = fbc_t2[del] - fbc_t1[del] | ||
reference_counter_delta = fbc_t2[ref] - fbc_t1[ref] | ||
|
||
delivered_perf = (refernce_perf x delivered_counter_delta) / reference_counter_delta |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.