Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) .. SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) ============================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) Intel(R) Speed Select Technology User Guide
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) ============================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) The Intel(R) Speed Select Technology (Intel(R) SST) provides a powerful new
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) collection of features that give more granular control over CPU performance.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) With Intel(R) SST, one server can be configured for power and performance for a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) variety of diverse workload requirements.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) Refer to the links below for an overview of the technology:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) - https://www.intel.com/content/www/us/en/architecture-and-technology/speed-select-technology-article.html
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) - https://builders.intel.com/docs/networkbuilders/intel-speed-select-technology-base-frequency-enhancing-performance.pdf
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) These capabilities are further enhanced in some of the newer generations of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) server platforms where these features can be enumerated and controlled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) dynamically without pre-configuring via BIOS setup options. This dynamic
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) configuration is done via mailbox commands to the hardware. One way to enumerate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) and configure these features is by using the Intel Speed Select utility.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) This document explains how to use the Intel Speed Select tool to enumerate and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) control Intel(R) SST features. This document gives example commands and explains
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) how these commands change the power and performance profile of the system under
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) test. Using this tool as an example, customers can replicate the messaging
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) implemented in the tool in their production software.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) intel-speed-select configuration tool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) ======================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) Most Linux distribution packages may include the "intel-speed-select" tool. If not,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) it can be built by downloading the Linux kernel tree from kernel.org. Once
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) downloaded, the tool can be built without building the full kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) From the kernel tree, run the following commands::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) # cd tools/power/x86/intel-speed-select/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) # make
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) # make install
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) Getting Help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) ------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) To get help with the tool, execute the command below::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) # intel-speed-select --help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) The top-level help describes arguments and features. Notice that there is a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) multi-level help structure in the tool. For example, to get help for the feature "perf-profile"::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) # intel-speed-select perf-profile --help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) To get help on a command, another level of help is provided. For example for the command info "info"::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) # intel-speed-select perf-profile info --help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) Summary of platform capability
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) ------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) To check the current platform and driver capaibilities, execute::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) #intel-speed-select --info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) For example on a test system::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66)  # intel-speed-select --info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69)  Platform: API version : 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70)  Platform: Driver version : 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71)  Platform: mbox supported : 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72)  Platform: mmio supported : 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73)  Intel(R) SST-PP (feature perf-profile) is supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74)  TDP level change control is unlocked, max level: 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75)  Intel(R) SST-TF (feature turbo-freq) is supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76)  Intel(R) SST-BF (feature base-freq) is not supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77)  Intel(R) SST-CP (feature core-power) is supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) Intel(R) Speed Select Technology - Performance Profile (Intel(R) SST-PP)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) ------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) This feature allows configuration of a server dynamically based on workload
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) performance requirements. This helps users during deployment as they do not have
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) to choose a specific server configuration statically.  This Intel(R) Speed Select
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) Technology - Performance Profile (Intel(R) SST-PP) feature introduces a mechanism
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) that allows multiple optimized performance profiles per system. Each profile
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) defines a set of CPUs that need to be online and rest offline to sustain a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) guaranteed base frequency. Once the user issues a command to use a specific
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) performance profile and meet CPU online/offline requirement, the user can expect
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) a change in the base frequency dynamically. This feature is called
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) "perf-profile" when using the Intel Speed Select tool.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) Number or performance levels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) There can be multiple performance profiles on a system. To get the number of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) profiles, execute the command below::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99)  # intel-speed-select perf-profile get-config-levels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104)     cpu-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)         get-config-levels:4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)  package-1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)     cpu-14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)         get-config-levels:4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) On this system under test, there are 4 performance profiles in addition to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) base performance profile (which is performance level 0).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) Lock/Unlock status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) ~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) Even if there are multiple performance profiles, it is possible that they
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) are locked. If they are locked, users cannot issue a command to change the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) performance state. It is possible that there is a BIOS setup to unlock or check
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) with your system vendor.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) To check if the system is locked, execute the following command::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)  # intel-speed-select perf-profile get-lock-status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129)     cpu-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)         get-lock-status:0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131)  package-1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133)     cpu-14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134)         get-lock-status:0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) In this case, lock status is 0, which means that the system is unlocked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) Properties of a performance level
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) To get properties of a specific performance level (For example for the level 0, below), execute the command below::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)  # intel-speed-select perf-profile info -l 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148)     cpu-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149)       perf-profile-level-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150)         cpu-count:28
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151)         enable-cpu-mask:000003ff,f0003fff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152)         enable-cpu-list:0,1,2,3,4,5,6,7,8,9,10,11,12,13,28,29,30,31,32,33,34,35,36,37,38,39,40,41
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153)         thermal-design-power-ratio:26
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)         base-frequency(MHz):2600
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155)         speed-select-turbo-freq:disabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156)         speed-select-base-freq:disabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 	...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) 	...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) Here -l option is used to specify a performance level.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) If the option -l is omitted, then this command will print information about all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) the performance levels. The above command is printing properties of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) performance level 0.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) For this performance profile, the list of CPUs displayed by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) "enable-cpu-mask/enable-cpu-list" at the max can be "online." When that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) condition is met, then base frequency of 2600 MHz can be maintained. To
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) understand more, execute "intel-speed-select perf-profile info" for performance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) level 4::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172)  # intel-speed-select perf-profile info -l 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177)     cpu-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178)       perf-profile-level-4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179)         cpu-count:28
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180)         enable-cpu-mask:000000fa,f0000faf
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181)         enable-cpu-list:0,1,2,3,5,7,8,9,10,11,28,29,30,31,33,35,36,37,38,39
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182)         thermal-design-power-ratio:28
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183)         base-frequency(MHz):2800
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184)         speed-select-turbo-freq:disabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185)         speed-select-base-freq:unsupported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) 	...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 	...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) There are fewer CPUs in the "enable-cpu-mask/enable-cpu-list". Consequently, if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) the user only keeps these CPUs online and the rest "offline," then the base
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) frequency is increased to 2.8 GHz compared to 2.6 GHz at performance level 0.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) Get current performance level
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) To get the current performance level, execute::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198)  # intel-speed-select perf-profile get-config-current-level
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203)     cpu-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204)         get-config-current_level:0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) First verify that the base_frequency displayed by the cpufreq sysfs is correct::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208)  # cat /sys/devices/system/cpu/cpu0/cpufreq/base_frequency
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209)  2600000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) This matches the base-frequency (MHz) field value displayed from the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) "perf-profile info" command for performance level 0(cpufreq frequency is in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) KHz).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) To check if the average frequency is equal to the base frequency for a 100% busy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) workload, disable turbo::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) # echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) Then runs a busy workload on all CPUs, for example::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) #stress -c 64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) To verify the base frequency, run turbostat::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226)  #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228)   Package	Core	CPU	Bzy_MHz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) 		-	-	2600
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230)   0		0	0	2600
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231)   0		1	1	2600
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232)   0		2	2	2600
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233)   0		3	3	2600
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234)   0		4	4	2600
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235)   .		.	.	.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) Changing performance level
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) To the change the performance level to 4, execute::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243)  # intel-speed-select -d perf-profile set-config-level -l 4 -o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248)     cpu-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249)       perf-profile
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250)         set_tdp_level:success
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) In the command above, "-o" is optional. If it is specified, then it will also
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) offline CPUs which are not present in the enable_cpu_mask for this performance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) level.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) Now if the base_frequency is checked::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258)  #cat /sys/devices/system/cpu/cpu0/cpufreq/base_frequency
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259)  2800000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) Which shows that the base frequency now increased from 2600 MHz at performance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) level 0 to 2800 MHz at performance level 4. As a result, any workload, which can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) use fewer CPUs, can see a boost of 200 MHz compared to performance level 0.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) Check presence of other Intel(R) SST features
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) ---------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) Each of the performance profiles also specifies weather there is support of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) other two Intel(R) SST features (Intel(R) Speed Select Technology - Base Frequency
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) (Intel(R) SST-BF) and Intel(R) Speed Select Technology - Turbo Frequency (Intel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) SST-TF)).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) For example, from the output of "perf-profile info" above, for level 0 and level
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) 4:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) For level 0::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277)        speed-select-turbo-freq:disabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278)        speed-select-base-freq:disabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) For level 4::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281)        speed-select-turbo-freq:disabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282)        speed-select-base-freq:unsupported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) Given these results, the "speed-select-base-freq" (Intel(R) SST-BF) in level 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) changed from "disabled" to "unsupported" compared to performance level 0.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) This means that at performance level 4, the "speed-select-base-freq" feature is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) not supported. However, at performance level 0, this feature is "supported", but
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) currently "disabled", meaning the user has not activated this feature. Whereas
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) "speed-select-turbo-freq" (Intel(R) SST-TF) is supported at both performance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) levels, but currently not activated by the user.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) The Intel(R) SST-BF and the Intel(R) SST-TF features are built on a foundation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) technology called Intel(R) Speed Select Technology - Core Power (Intel(R) SST-CP).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) The platform firmware enables this feature when Intel(R) SST-BF or Intel(R) SST-TF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) is supported on a platform.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) Intel(R) Speed Select Technology Core Power (Intel(R) SST-CP)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) ---------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) Intel(R) Speed Select Technology Core Power (Intel(R) SST-CP) is an interface that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) allows users to define per core priority. This defines a mechanism to distribute
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) power among cores when there is a power constrained scenario. This defines a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) class of service (CLOS) configuration.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) The user can configure up to 4 class of service configurations. Each CLOS group
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) configuration allows definitions of parameters, which affects how the frequency
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) can be limited and power is distributed. Each CPU core can be tied to a class of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) service and hence an associated priority. The granularity is at core level not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) at per CPU level.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) Enable CLOS based prioritization
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) To use CLOS based prioritization feature, firmware must be informed to enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) and use a priority type. There is a default per platform priority type, which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) can be changed with optional command line parameter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) To enable and check the options, execute::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321)  # intel-speed-select core-power enable --help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324)  Enable core-power for a package/die
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) 	Clos Enable: Specify priority type with [--priority|-p]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) 		 0: Proportional, 1: Ordered
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) There are two types of priority types:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) - Ordered
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) Priority for ordered throttling is defined based on the index of the assigned
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) CLOS group. Where CLOS0 gets highest priority (throttled last).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) Priority order is:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) CLOS0 > CLOS1 > CLOS2 > CLOS3.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) - Proportional
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) When proportional priority is used, there is an additional parameter called
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) frequency_weight, which can be specified per CLOS group. The goal of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) proportional priority is to provide each core with the requested min., then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) distribute all remaining (excess/deficit) budgets in proportion to a defined
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) weight. This proportional priority can be configured using "core-power config"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) command.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) To enable with the platform default priority type, execute::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349)  # intel-speed-select core-power enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354)     cpu-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355)       core-power
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356)         enable:success
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357)  package-1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359)     cpu-6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360)       core-power
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361)         enable:success
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) The scope of this enable is per package or die scoped when a package contains
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) multiple dies. To check if CLOS is enabled and get priority type, "core-power
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) info" command can be used. For example to check the status of core-power feature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) on CPU 0, execute::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368)  # intel-speed-select -c 0 core-power info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373)     cpu-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374)       core-power
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375)         support-status:supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376)         enable-status:enabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377)         clos-enable-status:enabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378)         priority-type:proportional
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379)  package-1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381)     cpu-24
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382)       core-power
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383)         support-status:supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384)         enable-status:enabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385)         clos-enable-status:enabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386)         priority-type:proportional
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) Configuring CLOS groups
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) ~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) Each CLOS group has its own attributes including min, max, freq_weight and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) desired. These parameters can be configured with "core-power config" command.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) Defaults will be used if user skips setting a parameter except clos id, which is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) mandatory. To check core-power config options, execute::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396)  # intel-speed-select core-power config --help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399)  Set core-power configuration for one of the four clos ids
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) 	Specify targeted clos id with [--clos|-c]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) 	Specify clos Proportional Priority [--weight|-w]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) 	Specify clos min in MHz with [--min|-n]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) 	Specify clos max in MHz with [--max|-m]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) For example::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407)  # intel-speed-select core-power config -c 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410)  clos epp is not specified, default: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411)  clos frequency weight is not specified, default: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412)  clos min is not specified, default: 0 MHz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413)  clos max is not specified, default: 25500 MHz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414)  clos desired is not specified, default: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417)     cpu-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418)       core-power
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419)         config:success
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420)  package-1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422)     cpu-6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423)       core-power
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424)         config:success
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) The user has the option to change defaults. For example, the user can change the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) "min" and set the base frequency to always get guaranteed base frequency.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) Get the current CLOS configuration
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) To check the current configuration, "core-power get-config" can be used. For
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) example, to get the configuration of CLOS 0::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435)  # intel-speed-select core-power get-config -c 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440)     cpu-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441)       core-power
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442)         clos:0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443)         epp:0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444)         clos-proportional-priority:0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445)         clos-min:0 MHz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446)         clos-max:Max Turbo frequency
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447)         clos-desired:0 MHz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448)  package-1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450)     cpu-24
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451)       core-power
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452)         clos:0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453)         epp:0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454)         clos-proportional-priority:0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455)         clos-min:0 MHz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456)         clos-max:Max Turbo frequency
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457)         clos-desired:0 MHz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) Associating a CPU with a CLOS group
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) To associate a CPU to a CLOS group "core-power assoc" command can be used::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464)  # intel-speed-select core-power assoc --help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467)  Associate a clos id to a CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) 	Specify targeted clos id with [--clos|-c]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) For example to associate CPU 10 to CLOS group 3, execute::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473)  # intel-speed-select -c 10 core-power assoc -c 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478)     cpu-10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479)       core-power
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480)         assoc:success
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) Once a CPU is associated, its sibling CPUs are also associated to a CLOS group.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) Once associated, avoid changing Linux "cpufreq" subsystem scaling frequency
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) limits.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) To check the existing association for a CPU, "core-power get-assoc" command can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) be used. For example, to get association of CPU 10, execute::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489)  # intel-speed-select -c 10 core-power get-assoc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492)  package-1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494)     cpu-10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495)       get-assoc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496)         clos:3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) This shows that CPU 10 is part of a CLOS group 3.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) Disable CLOS based prioritization
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) To disable, execute::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) # intel-speed-select core-power disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) Some features like Intel(R) SST-TF can only be enabled when CLOS based prioritization
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) is enabled. For this reason, disabling while Intel(R) SST-TF is enabled can cause
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) Intel(R) SST-TF to fail. This will cause the "disable" command to display an error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) if Intel(R) SST-TF is already enabled. In turn, to disable, the Intel(R) SST-TF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) feature must be disabled first.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) Intel(R) Speed Select Technology - Base Frequency (Intel(R) SST-BF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) -------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) The Intel(R) Speed Select Technology - Base Frequency (Intel(R) SST-BF) feature lets
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) the user control base frequency. If some critical workload threads demand
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) constant high guaranteed performance, then this feature can be used to execute
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) the thread at higher base frequency on specific sets of CPUs (high priority
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) CPUs) at the cost of lower base frequency (low priority CPUs) on other CPUs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) This feature does not require offline of the low priority CPUs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) The support of Intel(R) SST-BF depends on the Intel(R) Speed Select Technology -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) Performance Profile (Intel(R) SST-PP) performance level configuration. It is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) possible that only certain performance levels support Intel(R) SST-BF. It is also
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) possible that only base performance level (level = 0) has support of Intel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) SST-BF. Consequently, first select the desired performance level to enable this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) feature.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) In the system under test here, Intel(R) SST-BF is supported at the base
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) performance level 0, but currently disabled. For example for the level 0::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534)  # intel-speed-select -c 0 perf-profile info -l 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539)     cpu-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540)       perf-profile-level-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541)         ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543)         speed-select-base-freq:disabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) 	...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) Before enabling Intel(R) SST-BF and measuring its impact on a workload
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) performance, execute some workload and measure performance and get a baseline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) performance to compare against.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) Here the user wants more guaranteed performance. For this reason, it is likely
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) that turbo is disabled. To disable turbo, execute::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) #echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) Based on the output of the "intel-speed-select perf-profile info -l 0" base
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) frequency of guaranteed frequency 2600 MHz.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) Measure baseline performance for comparison
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) To compare, pick a multi-threaded workload where each thread can be scheduled on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) separate CPUs. "Hackbench pipe" test is a good example on how to improve
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) performance using Intel(R) SST-BF.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) Below, the workload is measuring average scheduler wakeup latency, so a lower
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) number means better performance::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569)  # taskset -c 3,4 perf bench -r 100 sched pipe
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570)  # Running 'sched/pipe' benchmark:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571)  # Executed 1000000 pipe operations between two processes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572)      Total time: 6.102 [sec]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573)        6.102445 usecs/op
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574)          163868 ops/sec
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) While running the above test, if we take turbostat output, it will show us that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) 2 of the CPUs are busy and reaching max. frequency (which would be the base
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) frequency as the turbo is disabled). The turbostat output::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580)  #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581)  Package	Core	CPU	Bzy_MHz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582)  0		0	0	1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583)  0		1	1	1005
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584)  0		2	2	1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585)  0		3	3	2600
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586)  0		4	4	2600
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587)  0		5	5	1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588)  0		6	6	1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589)  0		7	7	1005
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590)  0		8	8	1005
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591)  0		9	9	1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592)  0		10	10	1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593)  0		11	11	995
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594)  0		12	12	1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595)  0		13	13	1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597) From the above turbostat output, both CPU 3 and 4 are very busy and reaching
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) full guaranteed frequency of 2600 MHz.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600) Intel(R) SST-BF Capabilities
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) To get capabilities of Intel(R) SST-BF for the current performance level 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604) execute::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606)  # intel-speed-select base-freq info -l 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611)     cpu-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612)       speed-select-base-freq
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613)         high-priority-base-frequency(MHz):3000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614)         high-priority-cpu-mask:00000216,00002160
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615)         high-priority-cpu-list:5,6,8,13,33,34,36,41
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616)         low-priority-base-frequency(MHz):2400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617)         tjunction-temperature(C):125
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618)         thermal-design-power(W):205
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620) The above capabilities show that there are some CPUs on this system that can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) offer base frequency of 3000 MHz compared to the standard base frequency at this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622) performance levels. Nevertheless, these CPUs are fixed, and they are presented
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) via high-priority-cpu-list/high-priority-cpu-mask. But if this Intel(R) SST-BF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624) feature is selected, the low priorities CPUs (which are not in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625) high-priority-cpu-list) can only offer up to 2400 MHz. As a result, if this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) clipping of low priority CPUs is acceptable, then the user can enable Intel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) SST-BF feature particularly for the above "sched pipe" workload since only two
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) CPUs are used, they can be scheduled on high priority CPUs and can get boost of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629) 400 MHz.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) Enable Intel(R) SST-BF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632) ~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634) To enable Intel(R) SST-BF feature, execute::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636)  # intel-speed-select base-freq enable -a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641)     cpu-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642)       base-freq
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643)         enable:success
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644)  package-1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646)     cpu-14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647)       base-freq
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648)         enable:success
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650) In this case, -a option is optional. This not only enables Intel(R) SST-BF, but it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651) also adjusts the priority of cores using Intel(R) Speed Select Technology Core
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652) Power (Intel(R) SST-CP) features. This option sets the minimum performance of each
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653) Intel(R) Speed Select Technology - Performance Profile (Intel(R) SST-PP) class to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654) maximum performance so that the hardware will give maximum performance possible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655) for each CPU.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657) If -a option is not used, then the following steps are required before enabling
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658) Intel(R) SST-BF:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660) - Discover Intel(R) SST-BF and note low and high priority base frequency
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) - Note the high prioity CPU list
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662) - Enable CLOS using core-power feature set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663) - Configure CLOS parameters. Use CLOS.min to set to minimum performance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664) - Subscribe desired CPUs to CLOS groups
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666) With this configuration, if the same workload is executed by pinning the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667) workload to high priority CPUs (CPU 5 and 6 in this case)::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669)  #taskset -c 5,6 perf bench -r 100 sched pipe
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670)  # Running 'sched/pipe' benchmark:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671)  # Executed 1000000 pipe operations between two processes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672)      Total time: 5.627 [sec]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673)        5.627922 usecs/op
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 674)          177685 ops/sec
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 675) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 676) This way, by enabling Intel(R) SST-BF, the performance of this benchmark is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 677) improved (latency reduced) by 7.79%. From the turbostat output, it can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 678) observed that the high priority CPUs reached 3000 MHz compared to 2600 MHz.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 679) The turbostat output::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 680) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 681)  #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 682)  Package	Core	CPU	Bzy_MHz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 683)  0		0	0	2151
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 684)  0		1	1	2166
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 685)  0		2	2	2175
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 686)  0		3	3	2175
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 687)  0		4	4	2175
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 688)  0		5	5	3000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 689)  0		6	6	3000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 690)  0		7	7	2180
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 691)  0		8	8	2662
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 692)  0		9	9	2176
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 693)  0		10	10	2175
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 694)  0		11	11	2176
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 695)  0		12	12	2176
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 696)  0		13	13	2661
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 697) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 698) Disable Intel(R) SST-BF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 699) ~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 700) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 701) To disable the Intel(R) SST-BF feature, execute::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 702) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 703) # intel-speed-select base-freq disable -a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 704) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 705) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 706) Intel(R) Speed Select Technology - Turbo Frequency (Intel(R) SST-TF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 707) --------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 708) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 709) This feature enables the ability to set different "All core turbo ratio limits"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 710) to cores based on the priority. By using this feature, some cores can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 711) configured to get higher turbo frequency by designating them as high priority at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 712) the cost of lower or no turbo frequency on the low priority cores.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 713) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 714) For this reason, this feature is only useful when system is busy utilizing all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 715) CPUs, but the user wants some configurable option to get high performance on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 716) some CPUs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 717) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 718) The support of Intel(R) Speed Select Technology - Turbo Frequency (Intel(R) SST-TF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 719) depends on the Intel(R) Speed Select Technology - Performance Profile (Intel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 720) SST-PP) performance level configuration. It is possible that only a certain
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 721) performance level supports Intel(R) SST-TF. It is also possible that only the base
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 722) performance level (level = 0) has the support of Intel(R) SST-TF. Hence, first
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 723) select the desired performance level to enable this feature.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 724) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 725) In the system under test here, Intel(R) SST-TF is supported at the base
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 726) performance level 0, but currently disabled::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 727) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 728)  # intel-speed-select -c 0 perf-profile info -l 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 729)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 730)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 731)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 732)     cpu-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 733)       perf-profile-level-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 734)         ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 735)         ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 736)         speed-select-turbo-freq:disabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 737)         ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 738)         ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 739) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 740) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 741) To check if performance can be improved using Intel(R) SST-TF feature, get the turbo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 742) frequency properties with Intel(R) SST-TF enabled and compare to the base turbo
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 743) capability of this system.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 744) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 745) Get Base turbo capability
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 746) ~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 747) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 748) To get the base turbo capability of performance level 0, execute::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 749) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 750)  # intel-speed-select perf-profile info -l 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 751)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 752)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 753)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 754)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 755)     cpu-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 756)       perf-profile-level-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 757)         ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 758)         ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 759)         turbo-ratio-limits-sse
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 760)           bucket-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 761)             core-count:2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 762)             max-turbo-frequency(MHz):3200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 763)           bucket-1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 764)             core-count:4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 765)             max-turbo-frequency(MHz):3100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 766)           bucket-2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 767)             core-count:6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 768)             max-turbo-frequency(MHz):3100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 769)           bucket-3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 770)             core-count:8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 771)             max-turbo-frequency(MHz):3100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 772)           bucket-4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 773)             core-count:10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 774)             max-turbo-frequency(MHz):3100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 775)           bucket-5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 776)             core-count:12
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 777)             max-turbo-frequency(MHz):3100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 778)           bucket-6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 779)             core-count:14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 780)             max-turbo-frequency(MHz):3100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 781)           bucket-7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 782)             core-count:16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 783)             max-turbo-frequency(MHz):3100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 784) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 785) Based on the data above, when all the CPUS are busy, the max. frequency of 3100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 786) MHz can be achieved. If there is some busy workload on cpu 0 - 11 (e.g. stress)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 787) and on CPU 12 and 13, execute "hackbench pipe" workload::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 788) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 789)  # taskset -c 12,13 perf bench -r 100 sched pipe
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 790)  # Running 'sched/pipe' benchmark:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 791)  # Executed 1000000 pipe operations between two processes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 792)      Total time: 5.705 [sec]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 793)        5.705488 usecs/op
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 794)          175269 ops/sec
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 795) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 796) The turbostat output::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 797) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 798)  #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 799)  Package	Core	CPU	Bzy_MHz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 800)  0		0	0	3000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 801)  0		1	1	3000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 802)  0		2	2	3000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 803)  0		3	3	3000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 804)  0		4	4	3000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 805)  0		5	5	3100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 806)  0		6	6	3100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 807)  0		7	7	3000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 808)  0		8	8	3100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 809)  0		9	9	3000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 810)  0		10	10	3000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 811)  0		11	11	3000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 812)  0		12	12	3100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 813)  0		13	13	3100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 814) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 815) Based on turbostat output, the performance is limited by frequency cap of 3100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 816) MHz. To check if the hackbench performance can be improved for CPU 12 and CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 817) 13, first check the capability of the Intel(R) SST-TF feature for this performance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 818) level.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 819) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 820) Get Intel(R) SST-TF Capability
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 821) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 822) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 823) To get the capability, the "turbo-freq info" command can be used::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 824) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 825)  # intel-speed-select turbo-freq info -l 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 826)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 827)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 828)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 829)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 830)     cpu-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 831)       speed-select-turbo-freq
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 832)           bucket-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 833)             high-priority-cores-count:2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 834)             high-priority-max-frequency(MHz):3200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 835)             high-priority-max-avx2-frequency(MHz):3200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 836)             high-priority-max-avx512-frequency(MHz):3100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 837)           bucket-1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 838)             high-priority-cores-count:4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 839)             high-priority-max-frequency(MHz):3100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 840)             high-priority-max-avx2-frequency(MHz):3000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 841)             high-priority-max-avx512-frequency(MHz):2900
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 842)           bucket-2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 843)             high-priority-cores-count:6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 844)             high-priority-max-frequency(MHz):3100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 845)             high-priority-max-avx2-frequency(MHz):3000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 846)             high-priority-max-avx512-frequency(MHz):2900
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 847)           speed-select-turbo-freq-clip-frequencies
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 848)             low-priority-max-frequency(MHz):2600
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 849)             low-priority-max-avx2-frequency(MHz):2400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 850)             low-priority-max-avx512-frequency(MHz):2100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 851) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 852) Based on the output above, there is an Intel(R) SST-TF bucket for which there are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 853) two high priority cores. If only two high priority cores are set, then max.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 854) turbo frequency on those cores can be increased to 3200 MHz. This is 100 MHz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 855) more than the base turbo capability for all cores.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 856) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 857) In turn, for the hackbench workload, two CPUs can be set as high priority and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 858) rest as low priority. One side effect is that once enabled, the low priority
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 859) cores will be clipped to a lower frequency of 2600 MHz.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 860) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 861) Enable Intel(R) SST-TF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 862) ~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 863) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 864) To enable Intel(R) SST-TF, execute::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 865) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 866)  # intel-speed-select -c 12,13 turbo-freq enable -a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 867)  Intel(R) Speed Select Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 868)  Executing on CPU model: X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 869)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 870)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 871)     cpu-12
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 872)       turbo-freq
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 873)         enable:success
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 874)  package-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 875)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 876)     cpu-13
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 877)       turbo-freq
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 878)         enable:success
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 879)  package--1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 880)   die-0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 881)     cpu-63
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 882)       turbo-freq --auto
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 883)         enable:success
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 884) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 885) In this case, the option "-a" is optional. If set, it enables Intel(R) SST-TF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 886) feature and also sets the CPUs to high and low priority using Intel Speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 887) Select Technology Core Power (Intel(R) SST-CP) features. The CPU numbers passed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 888) with "-c" arguments are marked as high priority, including its siblings.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 889) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 890) If -a option is not used, then the following steps are required before enabling
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 891) Intel(R) SST-TF:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 892) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 893) - Discover Intel(R) SST-TF and note buckets of high priority cores and maximum frequency
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 894) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 895) - Enable CLOS using core-power feature set - Configure CLOS parameters
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 896) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 897) - Subscribe desired CPUs to CLOS groups making sure that high priority cores are set to the maximum frequency
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 898) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 899) If the same hackbench workload is executed, schedule hackbench threads on high
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 900) priority CPUs::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 901) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 902)  #taskset -c 12,13 perf bench -r 100 sched pipe
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 903)  # Running 'sched/pipe' benchmark:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 904)  # Executed 1000000 pipe operations between two processes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 905)      Total time: 5.510 [sec]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 906)        5.510165 usecs/op
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 907)          180826 ops/sec
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 908) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 909) This improved performance by around 3.3% improvement on a busy system. Here the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 910) turbostat output will show that the CPU 12 and CPU 13 are getting 100 MHz boost.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 911) The turbostat output::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 912) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 913)  #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 914)  Package	Core	CPU	Bzy_MHz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 915)  ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 916)  0		12	12	3200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 917)  0		13	13	3200