~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/admin-guide/acpi/cppc_sysfs.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. SPDX-License-Identifier: GPL-2.0
  2 
  3 ==================================================
  4 Collaborative Processor Performance Control (CPPC)
  5 ==================================================
  6 
  7 .. _cppc_sysfs:
  8 
  9 CPPC
 10 ====
 11 
 12 CPPC defined in the ACPI spec describes a mechanism for the OS to manage the
 13 performance of a logical processor on a contiguous and abstract performance
 14 scale. CPPC exposes a set of registers to describe abstract performance scale,
 15 to request performance levels and to measure per-cpu delivered performance.
 16 
 17 For more details on CPPC please refer to the ACPI specification at:
 18 
 19 http://uefi.org/specifications
 20 
 21 Some of the CPPC registers are exposed via sysfs under::
 22 
 23   /sys/devices/system/cpu/cpuX/acpi_cppc/
 24 
 25 for each cpu X::
 26 
 27   $ ls -lR  /sys/devices/system/cpu/cpu0/acpi_cppc/
 28   /sys/devices/system/cpu/cpu0/acpi_cppc/:
 29   total 0
 30   -r--r--r-- 1 root root 65536 Mar  5 19:38 feedback_ctrs
 31   -r--r--r-- 1 root root 65536 Mar  5 19:38 highest_perf
 32   -r--r--r-- 1 root root 65536 Mar  5 19:38 lowest_freq
 33   -r--r--r-- 1 root root 65536 Mar  5 19:38 lowest_nonlinear_perf
 34   -r--r--r-- 1 root root 65536 Mar  5 19:38 lowest_perf
 35   -r--r--r-- 1 root root 65536 Mar  5 19:38 nominal_freq
 36   -r--r--r-- 1 root root 65536 Mar  5 19:38 nominal_perf
 37   -r--r--r-- 1 root root 65536 Mar  5 19:38 reference_perf
 38   -r--r--r-- 1 root root 65536 Mar  5 19:38 wraparound_time
 39 
 40 * highest_perf : Highest performance of this processor (abstract scale).
 41 * nominal_perf : Highest sustained performance of this processor
 42   (abstract scale).
 43 * lowest_nonlinear_perf : Lowest performance of this processor with nonlinear
 44   power savings (abstract scale).
 45 * lowest_perf : Lowest performance of this processor (abstract scale).
 46 
 47 * lowest_freq : CPU frequency corresponding to lowest_perf (in MHz).
 48 * nominal_freq : CPU frequency corresponding to nominal_perf (in MHz).
 49   The above frequencies should only be used to report processor performance in
 50   frequency instead of abstract scale. These values should not be used for any
 51   functional decisions.
 52 
 53 * feedback_ctrs : Includes both Reference and delivered performance counter.
 54   Reference counter ticks up proportional to processor's reference performance.
 55   Delivered counter ticks up proportional to processor's delivered performance.
 56 * wraparound_time: Minimum time for the feedback counters to wraparound
 57   (seconds).
 58 * reference_perf : Performance level at which reference performance counter
 59   accumulates (abstract scale).
 60 
 61 
 62 Computing Average Delivered Performance
 63 =======================================
 64 
 65 Below describes the steps to compute the average performance delivered by
 66 taking two different snapshots of feedback counters at time T1 and T2.
 67 
 68   T1: Read feedback_ctrs as fbc_t1
 69       Wait or run some workload
 70 
 71   T2: Read feedback_ctrs as fbc_t2
 72 
 73 ::
 74 
 75   delivered_counter_delta = fbc_t2[del] - fbc_t1[del]
 76   reference_counter_delta = fbc_t2[ref] - fbc_t1[ref]
 77 
 78   delivered_perf = (reference_perf x delivered_counter_delta) / reference_counter_delta

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php