^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