cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

intel_uncore_frequency_scaling.rst (2399B)


      1.. SPDX-License-Identifier: GPL-2.0
      2.. include:: <isonum.txt>
      3
      4==============================
      5Intel Uncore Frequency Scaling
      6==============================
      7
      8:Copyright: |copy| 2022 Intel Corporation
      9
     10:Author: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
     11
     12Introduction
     13------------
     14
     15The uncore can consume significant amount of power in Intel's Xeon servers based
     16on the workload characteristics. To optimize the total power and improve overall
     17performance, SoCs have internal algorithms for scaling uncore frequency. These
     18algorithms monitor workload usage of uncore and set a desirable frequency.
     19
     20It is possible that users have different expectations of uncore performance and
     21want to have control over it. The objective is similar to allowing users to set
     22the scaling min/max frequencies via cpufreq sysfs to improve CPU performance.
     23Users may have some latency sensitive workloads where they do not want any
     24change to uncore frequency. Also, users may have workloads which require
     25different core and uncore performance at distinct phases and they may want to
     26use both cpufreq and the uncore scaling interface to distribute power and
     27improve overall performance.
     28
     29Sysfs Interface
     30---------------
     31
     32To control uncore frequency, a sysfs interface is provided in the directory:
     33`/sys/devices/system/cpu/intel_uncore_frequency/`.
     34
     35There is one directory for each package and die combination as the scope of
     36uncore scaling control is per die in multiple die/package SoCs or per
     37package for single die per package SoCs. The name represents the
     38scope of control. For example: 'package_00_die_00' is for package id 0 and
     39die 0.
     40
     41Each 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.