Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Documentation: admin-guide: pm: Document uncore frequency scaling

Added documentation to configure uncore frequency limits in Intel
Xeon processors.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
[ rjw: Clean up the document wording ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

authored by

Srinivas Pandruvada and committed by
Rafael J. Wysocki
a644161b 7e57714c

+61
+60
Documentation/admin-guide/pm/intel_uncore_frequency_scaling.rst
··· 1 + .. SPDX-License-Identifier: GPL-2.0 2 + .. include:: <isonum.txt> 3 + 4 + ============================== 5 + Intel Uncore Frequency Scaling 6 + ============================== 7 + 8 + :Copyright: |copy| 2022 Intel Corporation 9 + 10 + :Author: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> 11 + 12 + Introduction 13 + ------------ 14 + 15 + The uncore can consume significant amount of power in Intel's Xeon servers based 16 + on the workload characteristics. To optimize the total power and improve overall 17 + performance, SoCs have internal algorithms for scaling uncore frequency. These 18 + algorithms monitor workload usage of uncore and set a desirable frequency. 19 + 20 + It is possible that users have different expectations of uncore performance and 21 + want to have control over it. The objective is similar to allowing users to set 22 + the scaling min/max frequencies via cpufreq sysfs to improve CPU performance. 23 + Users may have some latency sensitive workloads where they do not want any 24 + change to uncore frequency. Also, users may have workloads which require 25 + different core and uncore performance at distinct phases and they may want to 26 + use both cpufreq and the uncore scaling interface to distribute power and 27 + improve overall performance. 28 + 29 + Sysfs Interface 30 + --------------- 31 + 32 + To control uncore frequency, a sysfs interface is provided in the directory: 33 + `/sys/devices/system/cpu/intel_uncore_frequency/`. 34 + 35 + There is one directory for each package and die combination as the scope of 36 + uncore scaling control is per die in multiple die/package SoCs or per 37 + package for single die per package SoCs. The name represents the 38 + scope of control. For example: 'package_00_die_00' is for package id 0 and 39 + die 0. 40 + 41 + Each package_*_die_* contains the following attributes: 42 + 43 + ``initial_max_freq_khz`` 44 + Out of reset, this attribute represent the maximum possible frequency. 45 + This is a read-only attribute. If users adjust max_freq_khz, 46 + they can always go back to maximum using the value from this attribute. 47 + 48 + ``initial_min_freq_khz`` 49 + Out of reset, this attribute represent the minimum possible frequency. 50 + This is a read-only attribute. If users adjust min_freq_khz, 51 + they can always go back to minimum using the value from this attribute. 52 + 53 + ``max_freq_khz`` 54 + This attribute is used to set the maximum uncore frequency. 55 + 56 + ``min_freq_khz`` 57 + This attribute is used to set the minimum uncore frequency. 58 + 59 + ``current_freq_khz`` 60 + This attribute is used to get the current uncore frequency.
+1
Documentation/admin-guide/pm/working-state.rst
··· 15 15 cpufreq_drivers 16 16 intel_epb 17 17 intel-speed-select 18 + intel_uncore_frequency_scaling