8sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget5/translations/zh_CN/admin-guide/pm/intel-speed-selectmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget5/translations/zh_TW/admin-guide/pm/intel-speed-selectmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget5/translations/it_IT/admin-guide/pm/intel-speed-selectmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget5/translations/ja_JP/admin-guide/pm/intel-speed-selectmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget5/translations/ko_KR/admin-guide/pm/intel-speed-selectmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget5/translations/sp_SP/admin-guide/pm/intel-speed-selectmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhO/var/lib/git/docbuild/linux/Documentation/admin-guide/pm/intel-speed-select.rsthKubhsection)}(hhh](htitle)}(h+Intel(R) Speed Select Technology User Guideh]h+Intel(R) Speed Select Technology User Guide}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hXThe Intel(R) Speed Select Technology (Intel(R) SST) provides a powerful new collection of features that give more granular control over CPU performance. With Intel(R) SST, one server can be configured for power and performance for a variety of diverse workload requirements.h]hXThe Intel(R) Speed Select Technology (Intel(R) SST) provides a powerful new collection of features that give more granular control over CPU performance. With Intel(R) SST, one server can be configured for power and performance for a variety of diverse workload requirements.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(h;Refer to the links below for an overview of the technology:h]h;Refer to the links below for an overview of the technology:}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh bullet_list)}(hhh](h list_item)}(hhhttps://www.intel.com/content/www/us/en/architecture-and-technology/speed-select-technology-article.htmlh]h)}(hhh]h reference)}(hhh]hhhttps://www.intel.com/content/www/us/en/architecture-and-technology/speed-select-technology-article.html}(hhhhhNhNubah}(h]h ]h"]h$]h&]refurihuh1hhhubah}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(hwhttps://builders.intel.com/docs/networkbuilders/intel-speed-select-technology-base-frequency-enhancing-performance.pdf h]h)}(hvhttps://builders.intel.com/docs/networkbuilders/intel-speed-select-technology-base-frequency-enhancing-performance.pdfh]h)}(hjh]hvhttps://builders.intel.com/docs/networkbuilders/intel-speed-select-technology-base-frequency-enhancing-performance.pdf}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubeh}(h]h ]h"]h$]h&]bullet-uh1hhhhKhhhhubh)}(hXuThese capabilities are further enhanced in some of the newer generations of server platforms where these features can be enumerated and controlled dynamically without pre-configuring via BIOS setup options. This dynamic configuration is done via mailbox commands to the hardware. One way to enumerate and configure these features is by using the Intel Speed Select utility.h]hXuThese capabilities are further enhanced in some of the newer generations of server platforms where these features can be enumerated and controlled dynamically without pre-configuring via BIOS setup options. This dynamic configuration is done via mailbox commands to the hardware. One way to enumerate and configure these features is by using the Intel Speed Select utility.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hXpThis document explains how to use the Intel Speed Select tool to enumerate and control Intel(R) SST features. This document gives example commands and explains how these commands change the power and performance profile of the system under test. Using this tool as an example, customers can replicate the messaging implemented in the tool in their production software.h]hXpThis document explains how to use the Intel Speed Select tool to enumerate and control Intel(R) SST features. This document gives example commands and explains how these commands change the power and performance profile of the system under test. Using this tool as an example, customers can replicate the messaging implemented in the tool in their production software.}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h%intel-speed-select configuration toolh]h%intel-speed-select configuration tool}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhhhhhKubh)}(hMost Linux distribution packages may include the "intel-speed-select" tool. If not, it can be built by downloading the Linux kernel tree from kernel.org. Once downloaded, the tool can be built without building the full kernel.h]hMost Linux distribution packages may include the “intel-speed-select” tool. If not, it can be built by downloading the Linux kernel tree from kernel.org. Once downloaded, the tool can be built without building the full kernel.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjWhhubh)}(h2From the kernel tree, run the following commands::h]h1From the kernel tree, run the following commands:}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjWhhubh literal_block)}(h># cd tools/power/x86/intel-speed-select/ # make # make installh]h># cd tools/power/x86/intel-speed-select/ # make # make install}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhK&hjWhhubh)}(hhh](h)}(h Getting Helph]h Getting Help}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK+ubh)}(h6To get help with the tool, execute the command below::h]h5To get help with the tool, execute the command below:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjhhubj)}(h# intel-speed-select --helph]h# intel-speed-select --help}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhK/hjhhubh)}(hThe top-level help describes arguments and features. Notice that there is a multi-level help structure in the tool. For example, to get help for the feature "perf-profile"::h]hThe top-level help describes arguments and features. Notice that there is a multi-level help structure in the tool. For example, to get help for the feature “perf-profile”:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjhhubj)}(h(# intel-speed-select perf-profile --helph]h(# intel-speed-select perf-profile --help}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhK4hjhhubh)}(hfTo get help on a command, another level of help is provided. For example for the command info "info"::h]hiTo get help on a command, another level of help is provided. For example for the command info “info”:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjhhubj)}(h-# intel-speed-select perf-profile info --helph]h-# intel-speed-select perf-profile info --help}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhK8hjhhubeh}(h] getting-helpah ]h"] getting helpah$]h&]uh1hhjWhhhhhK+ubh)}(hhh](h)}(hSummary of platform capabilityh]hSummary of platform capability}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK;ubh)}(h@To check the current platform and driver capabilities, execute::h]h?To check the current platform and driver capabilities, execute:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hFor example on a test system::h]hFor example on a test system:}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hjhhubj)}(hX# intel-speed-select --info Intel(R) Speed Select Technology Executing on CPU model: X Platform: API version : 1 Platform: Driver version : 1 Platform: mbox supported : 1 Platform: mmio supported : 1 Intel(R) SST-PP (feature perf-profile) is supported TDP level change control is unlocked, max level: 4 Intel(R) SST-TF (feature turbo-freq) is supported Intel(R) SST-BF (feature base-freq) is not supported Intel(R) SST-CP (feature core-power) is supportedh]hX# intel-speed-select --info Intel(R) Speed Select Technology Executing on CPU model: X Platform: API version : 1 Platform: Driver version : 1 Platform: mbox supported : 1 Platform: mmio supported : 1 Intel(R) SST-PP (feature perf-profile) is supported TDP level change control is unlocked, max level: 4 Intel(R) SST-TF (feature turbo-freq) is supported Intel(R) SST-BF (feature base-freq) is not supported Intel(R) SST-CP (feature core-power) is supported}hj<sbah}(h]h ]h"]h$]h&]hhuh1jhhhKBhjhhubeh}(h]summary-of-platform-capabilityah ]h"]summary of platform capabilityah$]h&]uh1hhjWhhhhhK;ubh)}(hhh](h)}(hHIntel(R) Speed Select Technology - Performance Profile (Intel(R) SST-PP)h]hHIntel(R) Speed Select Technology - Performance Profile (Intel(R) SST-PP)}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhhhhhKPubh)}(hXThis feature allows configuration of a server dynamically based on workload performance requirements. This helps users during deployment as they do not have to choose a specific server configuration statically. This Intel(R) Speed Select Technology - Performance Profile (Intel(R) SST-PP) feature introduces a mechanism that allows multiple optimized performance profiles per system. Each profile defines a set of CPUs that need to be online and rest offline to sustain a guaranteed base frequency. Once the user issues a command to use a specific performance profile and meet CPU online/offline requirement, the user can expect a change in the base frequency dynamically. This feature is called "perf-profile" when using the Intel Speed Select tool.h]hXThis feature allows configuration of a server dynamically based on workload performance requirements. This helps users during deployment as they do not have to choose a specific server configuration statically. This Intel(R) Speed Select Technology - Performance Profile (Intel(R) SST-PP) feature introduces a mechanism that allows multiple optimized performance profiles per system. Each profile defines a set of CPUs that need to be online and rest offline to sustain a guaranteed base frequency. Once the user issues a command to use a specific performance profile and meet CPU online/offline requirement, the user can expect a change in the base frequency dynamically. This feature is called “perf-profile” when using the Intel Speed Select tool.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKRhjRhhubh)}(hhh](h)}(hNumber or performance levelsh]hNumber or performance levels}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhhhhhK^ubh)}(hrThere can be multiple performance profiles on a system. To get the number of profiles, execute the command below::h]hqThere can be multiple performance profiles on a system. To get the number of profiles, execute the command below:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK`hjqhhubj)}(h# intel-speed-select perf-profile get-config-levels Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 get-config-levels:4 package-1 die-0 cpu-14 get-config-levels:4h]h# intel-speed-select perf-profile get-config-levels Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 get-config-levels:4 package-1 die-0 cpu-14 get-config-levels:4}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKchjqhhubh)}(hOn this system under test, there are 4 performance profiles in addition to the base performance profile (which is performance level 0).h]hOn this system under test, there are 4 performance profiles in addition to the base performance profile (which is performance level 0).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKohjqhhubeh}(h]number-or-performance-levelsah ]h"]number or performance levelsah$]h&]uh1hhjRhhhhhK^ubh)}(hhh](h)}(hLock/Unlock statush]hLock/Unlock status}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKsubh)}(hEven if there are multiple performance profiles, it is possible that they are locked. If they are locked, users cannot issue a command to change the performance state. It is possible that there is a BIOS setup to unlock or check with your system vendor.h]hEven if there are multiple performance profiles, it is possible that they are locked. If they are locked, users cannot issue a command to change the performance state. It is possible that there is a BIOS setup to unlock or check with your system vendor.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKuhjhhubh)}(hATo check if the system is locked, execute the following command::h]h@To check if the system is locked, execute the following command:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKzhjhhubj)}(h# intel-speed-select perf-profile get-lock-status Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 get-lock-status:0 package-1 die-0 cpu-14 get-lock-status:0h]h# intel-speed-select perf-profile get-lock-status Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 get-lock-status:0 package-1 die-0 cpu-14 get-lock-status:0}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhK|hjhhubh)}(hHIn this case, lock status is 0, which means that the system is unlocked.h]hHIn this case, lock status is 0, which means that the system is unlocked.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]lock-unlock-statusah ]h"]lock/unlock statusah$]h&]uh1hhjRhhhhhKsubh)}(hhh](h)}(h!Properties of a performance levelh]h!Properties of a performance level}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hsTo get properties of a specific performance level (For example for the level 0, below), execute the command below::h]hrTo get properties of a specific performance level (For example for the level 0, below), execute the command below:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(hX# intel-speed-select perf-profile info -l 0 Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 perf-profile-level-0 cpu-count:28 enable-cpu-mask:000003ff,f0003fff 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 thermal-design-power-ratio:26 base-frequency(MHz):2600 speed-select-turbo-freq:disabled speed-select-base-freq:disabled ... ...h]hX# intel-speed-select perf-profile info -l 0 Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 perf-profile-level-0 cpu-count:28 enable-cpu-mask:000003ff,f0003fff 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 thermal-design-power-ratio:26 base-frequency(MHz):2600 speed-select-turbo-freq:disabled speed-select-base-freq:disabled ... ...}hj$sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjhhubh)}(h6Here -l option is used to specify a performance level.h]h6Here -l option is used to specify a performance level.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hIf the option -l is omitted, then this command will print information about all the performance levels. The above command is printing properties of the performance level 0.h]hIf the option -l is omitted, then this command will print information about all the performance levels. The above command is printing properties of the performance level 0.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hX)For this performance profile, the list of CPUs displayed by the "enable-cpu-mask/enable-cpu-list" at the max can be "online." When that condition is met, then base frequency of 2600 MHz can be maintained. To understand more, execute "intel-speed-select perf-profile info" for performance level 4::h]hX4For this performance profile, the list of CPUs displayed by the “enable-cpu-mask/enable-cpu-list” at the max can be “online.” When that condition is met, then base frequency of 2600 MHz can be maintained. To understand more, execute “intel-speed-select perf-profile info” for performance level 4:}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(hX# intel-speed-select perf-profile info -l 4 Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 perf-profile-level-4 cpu-count:28 enable-cpu-mask:000000fa,f0000faf enable-cpu-list:0,1,2,3,5,7,8,9,10,11,28,29,30,31,33,35,36,37,38,39 thermal-design-power-ratio:28 base-frequency(MHz):2800 speed-select-turbo-freq:disabled speed-select-base-freq:unsupported ... ...h]hX# intel-speed-select perf-profile info -l 4 Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 perf-profile-level-4 cpu-count:28 enable-cpu-mask:000000fa,f0000faf enable-cpu-list:0,1,2,3,5,7,8,9,10,11,28,29,30,31,33,35,36,37,38,39 thermal-design-power-ratio:28 base-frequency(MHz):2800 speed-select-turbo-freq:disabled speed-select-base-freq:unsupported ... ...}hj\sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjhhubh)}(hThere are fewer CPUs in the "enable-cpu-mask/enable-cpu-list". Consequently, if the user only keeps these CPUs online and the rest "offline," then the base frequency is increased to 2.8 GHz compared to 2.6 GHz at performance level 0.h]hThere are fewer CPUs in the “enable-cpu-mask/enable-cpu-list”. Consequently, if the user only keeps these CPUs online and the rest “offline,” then the base frequency is increased to 2.8 GHz compared to 2.6 GHz at performance level 0.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]!properties-of-a-performance-levelah ]h"]!properties of a performance levelah$]h&]uh1hhjRhhhhhKubh)}(hhh](h)}(hGet current performance levelh]hGet current performance level}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(h/To get the current performance level, execute::h]h.To get the current performance level, execute:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(h# intel-speed-select perf-profile get-config-current-level Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 get-config-current_level:0h]h# intel-speed-select perf-profile get-config-current-level Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 get-config-current_level:0}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjhhubh)}(hPFirst verify that the base_frequency displayed by the cpufreq sysfs is correct::h]hOFirst verify that the base_frequency displayed by the cpufreq sysfs is correct:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(hA# cat /sys/devices/system/cpu/cpu0/cpufreq/base_frequency 2600000h]hA# cat /sys/devices/system/cpu/cpu0/cpufreq/base_frequency 2600000}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjhhubh)}(hThis matches the base-frequency (MHz) field value displayed from the "perf-profile info" command for performance level 0(cpufreq frequency is in KHz).h]hThis matches the base-frequency (MHz) field value displayed from the “perf-profile info” command for performance level 0(cpufreq frequency is in KHz).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hjTo check if the average frequency is equal to the base frequency for a 100% busy workload, disable turbo::h]hiTo check if the average frequency is equal to the base frequency for a 100% busy workload, disable turbo:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(h8# echo 1 > /sys/devices/system/cpu/intel_pstate/no_turboh]h8# echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjhhubh)}(h4Then runs a busy workload on all CPUs, for example::h]h3Then runs a busy workload on all CPUs, for example:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(h #stress -c 64h]h #stress -c 64}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjhhubh)}(h-To verify the base frequency, run turbostat::h]h,To verify the base frequency, run turbostat:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(hXX#turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1 Package Core CPU Bzy_MHz - - 2600 0 0 0 2600 0 1 1 2600 0 2 2 2600 0 3 3 2600 0 4 4 2600 . . . .h]hXX#turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1 Package Core CPU Bzy_MHz - - 2600 0 0 0 2600 0 1 1 2600 0 2 2 2600 0 3 3 2600 0 4 4 2600 . . . .}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjhhubeh}(h]get-current-performance-levelah ]h"]get current performance levelah$]h&]uh1hhjRhhhhhKubh)}(hhh](h)}(hChanging performance levelh]hChanging performance level}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hhhhhKubh)}(h3To the change the performance level to 4, execute::h]h2To the change the performance level to 4, execute:}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj3hhubj)}(h# intel-speed-select -d perf-profile set-config-level -l 4 -o Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 perf-profile set_tdp_level:successh]h# intel-speed-select -d perf-profile set-config-level -l 4 -o Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 perf-profile set_tdp_level:success}hjRsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhj3hhubh)}(hIn the command above, "-o" is optional. If it is specified, then it will also offline CPUs which are not present in the enable_cpu_mask for this performance level.h]hIn the command above, “-o” is optional. If it is specified, then it will also offline CPUs which are not present in the enable_cpu_mask for this performance level.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj3hhubh)}(h&Now if the base_frequency is checked::h]h%Now if the base_frequency is checked:}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj3hhubj)}(h@#cat /sys/devices/system/cpu/cpu0/cpufreq/base_frequency 2800000h]h@#cat /sys/devices/system/cpu/cpu0/cpufreq/base_frequency 2800000}hj|sbah}(h]h ]h"]h$]h&]hhuh1jhhhMhj3hhubh)}(hWhich shows that the base frequency now increased from 2600 MHz at performance level 0 to 2800 MHz at performance level 4. As a result, any workload, which can use fewer CPUs, can see a boost of 200 MHz compared to performance level 0.h]hWhich shows that the base frequency now increased from 2600 MHz at performance level 0 to 2800 MHz at performance level 4. As a result, any workload, which can use fewer CPUs, can see a boost of 200 MHz compared to performance level 0.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj3hhubeh}(h]changing-performance-levelah ]h"]changing performance levelah$]h&]uh1hhjRhhhhhKubh)}(hhh](h)}(h,Changing performance level via BMC Interfaceh]h,Changing performance level via BMC Interface}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM ubh)}(hXIt is possible to change SST-PP level using out of band (OOB) agent (Via some remote management console, through BMC "Baseboard Management Controller" interface). This mode is supported from the Sapphire Rapids processor generation. The kernel and tool change to support this mode is added to Linux kernel version 5.18. To enable this feature, kernel config "CONFIG_INTEL_HFI_THERMAL" is required. The minimum version of the tool is "v1.12" to support this feature, which is part of Linux kernel version 5.18.h]hX It is possible to change SST-PP level using out of band (OOB) agent (Via some remote management console, through BMC “Baseboard Management Controller” interface). This mode is supported from the Sapphire Rapids processor generation. The kernel and tool change to support this mode is added to Linux kernel version 5.18. To enable this feature, kernel config “CONFIG_INTEL_HFI_THERMAL” is required. The minimum version of the tool is “v1.12” to support this feature, which is part of Linux kernel version 5.18.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjhhubh)}(hcTo support such configuration, this tool can be used as a daemon. Add a command line option --oob::h]hbTo support such configuration, this tool can be used as a daemon. Add a command line option --oob:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubj)}(h# intel-speed-select --oob Intel(R) Speed Select Technology Executing on CPU model:143[0x8f] OOB mode is enabled and will run as daemonh]h# intel-speed-select --oob Intel(R) Speed Select Technology Executing on CPU model:143[0x8f] OOB mode is enabled and will run as daemon}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhMhjhhubh)}(hRIn this mode the tool will online/offline CPUs based on the new performance level.h]hRIn this mode the tool will online/offline CPUs based on the new performance level.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h],changing-performance-level-via-bmc-interfaceah ]h"],changing performance level via bmc interfaceah$]h&]uh1hhjRhhhhhM ubeh}(h]Bintel-r-speed-select-technology-performance-profile-intel-r-sst-ppah ]h"]Hintel(r) speed select technology - performance profile (intel(r) sst-pp)ah$]h&]uh1hhjWhhhhhKPubh)}(hhh](h)}(h-Check presence of other Intel(R) SST featuresh]h-Check presence of other Intel(R) SST features}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM ubh)}(hEach of the performance profiles also specifies weather there is support of other two Intel(R) SST features (Intel(R) Speed Select Technology - Base Frequency (Intel(R) SST-BF) and Intel(R) Speed Select Technology - Turbo Frequency (Intel SST-TF)).h]hEach of the performance profiles also specifies weather there is support of other two Intel(R) SST features (Intel(R) Speed Select Technology - Base Frequency (Intel(R) SST-BF) and Intel(R) Speed Select Technology - Turbo Frequency (Intel SST-TF)).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM"hjhhubh)}(hSFor example, from the output of "perf-profile info" above, for level 0 and level 4:h]hWFor example, from the output of “perf-profile info” above, for level 0 and level 4:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM'hjhhubhdefinition_list)}(hhh](hdefinition_list_item)}(hOFor level 0:: speed-select-turbo-freq:disabled speed-select-base-freq:disabled h](hterm)}(h For level 0::h]h For level 0::}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hhhM,hj-ubh definition)}(hhh]h)}(h@speed-select-turbo-freq:disabled speed-select-base-freq:disabledh]h@speed-select-turbo-freq:disabled speed-select-base-freq:disabled}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM+hjCubah}(h]h ]h"]h$]h&]uh1jAhj-ubeh}(h]h ]h"]h$]h&]uh1j+hhhM,hj(ubj,)}(hRFor level 4:: speed-select-turbo-freq:disabled speed-select-base-freq:unsupported h](j2)}(h For level 4::h]h For level 4::}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hhhM0hj`ubjB)}(hhh]h)}(hCspeed-select-turbo-freq:disabled speed-select-base-freq:unsupportedh]hCspeed-select-turbo-freq:disabled speed-select-base-freq:unsupported}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM/hjrubah}(h]h ]h"]h$]h&]uh1jAhj`ubeh}(h]h ]h"]h$]h&]uh1j+hhhM0hj(hhubeh}(h]h ]h"]h$]h&]uh1j&hjhhhhhNubh)}(hGiven these results, the "speed-select-base-freq" (Intel(R) SST-BF) in level 4 changed from "disabled" to "unsupported" compared to performance level 0.h]hGiven these results, the “speed-select-base-freq” (Intel(R) SST-BF) in level 4 changed from “disabled” to “unsupported” compared to performance level 0.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM2hjhhubh)}(hXmThis means that at performance level 4, the "speed-select-base-freq" feature is not supported. However, at performance level 0, this feature is "supported", but currently "disabled", meaning the user has not activated this feature. Whereas "speed-select-turbo-freq" (Intel(R) SST-TF) is supported at both performance levels, but currently not activated by the user.h]hX}This means that at performance level 4, the “speed-select-base-freq” feature is not supported. However, at performance level 0, this feature is “supported”, but currently “disabled”, meaning the user has not activated this feature. Whereas “speed-select-turbo-freq” (Intel(R) SST-TF) is supported at both performance levels, but currently not activated by the user.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM5hjhhubh)}(hXThe Intel(R) SST-BF and the Intel(R) SST-TF features are built on a foundation technology called Intel(R) Speed Select Technology - Core Power (Intel(R) SST-CP). The platform firmware enables this feature when Intel(R) SST-BF or Intel(R) SST-TF is supported on a platform.h]hXThe Intel(R) SST-BF and the Intel(R) SST-TF features are built on a foundation technology called Intel(R) Speed Select Technology - Core Power (Intel(R) SST-CP). The platform firmware enables this feature when Intel(R) SST-BF or Intel(R) SST-TF is supported on a platform.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM;hjhhubeh}(h],check-presence-of-other-intel-r-sst-featuresah ]h"]-check presence of other intel(r) sst featuresah$]h&]uh1hhjWhhhhhM ubh)}(hhh](h)}(h=Intel(R) Speed Select Technology Core Power (Intel(R) SST-CP)h]h=Intel(R) Speed Select Technology Core Power (Intel(R) SST-CP)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMAubh)}(hXIntel(R) Speed Select Technology Core Power (Intel(R) SST-CP) is an interface that allows users to define per core priority. This defines a mechanism to distribute power among cores when there is a power constrained scenario. This defines a class of service (CLOS) configuration.h]hXIntel(R) Speed Select Technology Core Power (Intel(R) SST-CP) is an interface that allows users to define per core priority. This defines a mechanism to distribute power among cores when there is a power constrained scenario. This defines a class of service (CLOS) configuration.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMChjhhubh)}(hXQThe user can configure up to 4 class of service configurations. Each CLOS group configuration allows definitions of parameters, which affects how the frequency can be limited and power is distributed. Each CPU core can be tied to a class of service and hence an associated priority. The granularity is at core level not at per CPU level.h]hXQThe user can configure up to 4 class of service configurations. Each CLOS group configuration allows definitions of parameters, which affects how the frequency can be limited and power is distributed. Each CPU core can be tied to a class of service and hence an associated priority. The granularity is at core level not at per CPU level.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMHhjhhubh)}(hhh](h)}(h Enable CLOS based prioritizationh]h Enable CLOS based prioritization}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMOubh)}(hTo use CLOS based prioritization feature, firmware must be informed to enable and use a priority type. There is a default per platform priority type, which can be changed with optional command line parameter.h]hTo use CLOS based prioritization feature, firmware must be informed to enable and use a priority type. There is a default per platform priority type, which can be changed with optional command line parameter.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMQhjhhubh)}(h*To enable and check the options, execute::h]h)To enable and check the options, execute:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMUhjhhubj)}(h# intel-speed-select core-power enable --help Intel(R) Speed Select Technology Executing on CPU model: X Enable core-power for a package/die Clos Enable: Specify priority type with [--priority|-p] 0: Proportional, 1: Orderedh]h# intel-speed-select core-power enable --help Intel(R) Speed Select Technology Executing on CPU model: X Enable core-power for a package/die Clos Enable: Specify priority type with [--priority|-p] 0: Proportional, 1: Ordered}hj!sbah}(h]h ]h"]h$]h&]hhuh1jhhhMWhjhhubh)}(h&There are two types of priority types:h]h&There are two types of priority types:}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM^hjhhubh)}(hhh]h)}(hOrdered h]h)}(hOrderedh]hOrdered}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM`hj@ubah}(h]h ]h"]h$]h&]uh1hhj=hhhhhNubah}(h]h ]h"]h$]h&]j9j:uh1hhhhM`hjhhubh)}(hPriority for ordered throttling is defined based on the index of the assigned CLOS group. Where CLOS0 gets highest priority (throttled last).h]hPriority for ordered throttling is defined based on the index of the assigned CLOS group. Where CLOS0 gets highest priority (throttled last).}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMbhjhhubh)}(h1Priority order is: CLOS0 > CLOS1 > CLOS2 > CLOS3.h]h1Priority order is: CLOS0 > CLOS1 > CLOS2 > CLOS3.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMehjhhubh)}(hhh]h)}(h Proportional h]h)}(h Proportionalh]h Proportional}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhhj}ubah}(h]h ]h"]h$]h&]uh1hhjzhhhhhNubah}(h]h ]h"]h$]h&]j9j:uh1hhhhMhhjhhubh)}(hXWhen proportional priority is used, there is an additional parameter called frequency_weight, which can be specified per CLOS group. The goal of proportional priority is to provide each core with the requested min., then distribute all remaining (excess/deficit) budgets in proportion to a defined weight. This proportional priority can be configured using "core-power config" command.h]hXWhen proportional priority is used, there is an additional parameter called frequency_weight, which can be specified per CLOS group. The goal of proportional priority is to provide each core with the requested min., then distribute all remaining (excess/deficit) budgets in proportion to a defined weight. This proportional priority can be configured using “core-power config” command.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMjhjhhubh)}(h /sys/devices/system/cpu/intel_pstate/no_turboh]h7#echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhM?hjQhhubh)}(hwBased on the output of the "intel-speed-select perf-profile info -l 0" base frequency of guaranteed frequency 2600 MHz.h]h{Based on the output of the “intel-speed-select perf-profile info -l 0” base frequency of guaranteed frequency 2600 MHz.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMAhjQhhubh)}(hhh](h)}(h+Measure baseline performance for comparisonh]h+Measure baseline performance for comparison}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMFubh)}(hTo compare, pick a multi-threaded workload where each thread can be scheduled on separate CPUs. "Hackbench pipe" test is a good example on how to improve performance using Intel(R) SST-BF.h]hTo compare, pick a multi-threaded workload where each thread can be scheduled on separate CPUs. “Hackbench pipe” test is a good example on how to improve performance using Intel(R) SST-BF.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMHhjhhubh)}(hoBelow, the workload is measuring average scheduler wakeup latency, so a lower number means better performance::h]hnBelow, the workload is measuring average scheduler wakeup latency, so a lower number means better performance:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMLhjhhubj)}(h# taskset -c 3,4 perf bench -r 100 sched pipe # Running 'sched/pipe' benchmark: # Executed 1000000 pipe operations between two processes Total time: 6.102 [sec] 6.102445 usecs/op 163868 ops/sech]h# taskset -c 3,4 perf bench -r 100 sched pipe # Running 'sched/pipe' benchmark: # Executed 1000000 pipe operations between two processes Total time: 6.102 [sec] 6.102445 usecs/op 163868 ops/sec}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhMOhjhhubh)}(hWhile running the above test, if we take turbostat output, it will show us that 2 of the CPUs are busy and reaching max. frequency (which would be the base frequency as the turbo is disabled). The turbostat output::h]hWhile running the above test, if we take turbostat output, it will show us that 2 of the CPUs are busy and reaching max. frequency (which would be the base frequency as the turbo is disabled). The turbostat output:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMVhjhhubj)}(hXU#turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1 Package Core CPU Bzy_MHz 0 0 0 1000 0 1 1 1005 0 2 2 1000 0 3 3 2600 0 4 4 2600 0 5 5 1000 0 6 6 1000 0 7 7 1005 0 8 8 1005 0 9 9 1000 0 10 10 1000 0 11 11 995 0 12 12 1000 0 13 13 1000h]hXU#turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1 Package Core CPU Bzy_MHz 0 0 0 1000 0 1 1 1005 0 2 2 1000 0 3 3 2600 0 4 4 2600 0 5 5 1000 0 6 6 1000 0 7 7 1005 0 8 8 1005 0 9 9 1000 0 10 10 1000 0 11 11 995 0 12 12 1000 0 13 13 1000}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhMZhjhhubh)}(hsFrom the above turbostat output, both CPU 3 and 4 are very busy and reaching full guaranteed frequency of 2600 MHz.h]hsFrom the above turbostat output, both CPU 3 and 4 are very busy and reaching full guaranteed frequency of 2600 MHz.}(hj) hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMkhjhhubeh}(h]+measure-baseline-performance-for-comparisonah ]h"]+measure baseline performance for comparisonah$]h&]uh1hhjQhhhhhMFubh)}(hhh](h)}(hIntel(R) SST-BF Capabilitiesh]hIntel(R) SST-BF Capabilities}(hjB hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj? hhhhhMoubh)}(hUTo get capabilities of Intel(R) SST-BF for the current performance level 0, execute::h]hTTo get capabilities of Intel(R) SST-BF for the current performance level 0, execute:}(hjP hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMqhj? hhubj)}(hX# intel-speed-select base-freq info -l 0 Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 speed-select-base-freq high-priority-base-frequency(MHz):3000 high-priority-cpu-mask:00000216,00002160 high-priority-cpu-list:5,6,8,13,33,34,36,41 low-priority-base-frequency(MHz):2400 tjunction-temperature(C):125 thermal-design-power(W):205h]hX# intel-speed-select base-freq info -l 0 Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 speed-select-base-freq high-priority-base-frequency(MHz):3000 high-priority-cpu-mask:00000216,00002160 high-priority-cpu-list:5,6,8,13,33,34,36,41 low-priority-base-frequency(MHz):2400 tjunction-temperature(C):125 thermal-design-power(W):205}hj^ sbah}(h]h ]h"]h$]h&]hhuh1jhhhMthj? hhubh)}(hXThe above capabilities show that there are some CPUs on this system that can offer base frequency of 3000 MHz compared to the standard base frequency at this performance levels. Nevertheless, these CPUs are fixed, and they are presented via high-priority-cpu-list/high-priority-cpu-mask. But if this Intel(R) SST-BF feature is selected, the low priorities CPUs (which are not in high-priority-cpu-list) can only offer up to 2400 MHz. As a result, if this clipping of low priority CPUs is acceptable, then the user can enable Intel SST-BF feature particularly for the above "sched pipe" workload since only two CPUs are used, they can be scheduled on high priority CPUs and can get boost of 400 MHz.h]hXThe above capabilities show that there are some CPUs on this system that can offer base frequency of 3000 MHz compared to the standard base frequency at this performance levels. Nevertheless, these CPUs are fixed, and they are presented via high-priority-cpu-list/high-priority-cpu-mask. But if this Intel(R) SST-BF feature is selected, the low priorities CPUs (which are not in high-priority-cpu-list) can only offer up to 2400 MHz. As a result, if this clipping of low priority CPUs is acceptable, then the user can enable Intel SST-BF feature particularly for the above “sched pipe” workload since only two CPUs are used, they can be scheduled on high priority CPUs and can get boost of 400 MHz.}(hjl hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj? hhubeh}(h]intel-r-sst-bf-capabilitiesah ]h"]intel(r) sst-bf capabilitiesah$]h&]uh1hhjQhhhhhMoubh)}(hhh](h)}(hEnable Intel(R) SST-BFh]hEnable Intel(R) SST-BF}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(h,To enable Intel(R) SST-BF feature, execute::h]h+To enable Intel(R) SST-BF feature, execute:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubj)}(h# intel-speed-select base-freq enable -a Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 base-freq enable:success package-1 die-0 cpu-14 base-freq enable:successh]h# intel-speed-select base-freq enable -a Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 base-freq enable:success package-1 die-0 cpu-14 base-freq enable:success}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhMhj hhubh)}(hXIn this case, -a option is optional. This not only enables Intel(R) SST-BF, but it also adjusts the priority of cores using Intel(R) Speed Select Technology Core Power (Intel(R) SST-CP) features. This option sets the minimum performance of each Intel(R) Speed Select Technology - Performance Profile (Intel(R) SST-PP) class to maximum performance so that the hardware will give maximum performance possible for each CPU.h]hXIn this case, -a option is optional. This not only enables Intel(R) SST-BF, but it also adjusts the priority of cores using Intel(R) Speed Select Technology Core Power (Intel(R) SST-CP) features. This option sets the minimum performance of each Intel(R) Speed Select Technology - Performance Profile (Intel(R) SST-PP) class to maximum performance so that the hardware will give maximum performance possible for each CPU.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(h`If -a option is not used, then the following steps are required before enabling Intel(R) SST-BF:h]h`If -a option is not used, then the following steps are required before enabling Intel(R) SST-BF:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(hhh](h)}(hFDiscover Intel(R) SST-BF and note low and high priority base frequencyh]h)}(hj h]hFDiscover Intel(R) SST-BF and note low and high priority base frequency}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1hhj hhhhhNubh)}(hNote the high priority CPU listh]h)}(hj h]hNote the high priority CPU list}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1hhj hhhhhNubh)}(h(Enable CLOS using core-power feature seth]h)}(hj h]h(Enable CLOS using core-power feature set}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1hhj hhhhhNubh)}(hEConfigure CLOS parameters. Use CLOS.min to set to minimum performancegh]h)}(hj h]hEConfigure CLOS parameters. Use CLOS.min to set to minimum performance}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1hhj hhhhhNubh)}(h&Subscribe desired CPUs to CLOS groups h]h)}(h%Subscribe desired CPUs to CLOS groupsh]h%Subscribe desired CPUs to CLOS groups}(hj. hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj* ubah}(h]h ]h"]h$]h&]uh1hhj hhhhhNubeh}(h]h ]h"]h$]h&]j9j:uh1hhhhMhj hhubh)}(hWith this configuration, if the same workload is executed by pinning the workload to high priority CPUs (CPU 5 and 6 in this case)::h]hWith this configuration, if the same workload is executed by pinning the workload to high priority CPUs (CPU 5 and 6 in this case):}(hjH hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubj)}(h#taskset -c 5,6 perf bench -r 100 sched pipe # Running 'sched/pipe' benchmark: # Executed 1000000 pipe operations between two processes Total time: 5.627 [sec] 5.627922 usecs/op 177685 ops/sech]h#taskset -c 5,6 perf bench -r 100 sched pipe # Running 'sched/pipe' benchmark: # Executed 1000000 pipe operations between two processes Total time: 5.627 [sec] 5.627922 usecs/op 177685 ops/sec}hjV sbah}(h]h ]h"]h$]h&]hhuh1jhhhMhj hhubh)}(hThis way, by enabling Intel(R) SST-BF, the performance of this benchmark is improved (latency reduced) by 7.79%. From the turbostat output, it can be observed that the high priority CPUs reached 3000 MHz compared to 2600 MHz. The turbostat output::h]hThis way, by enabling Intel(R) SST-BF, the performance of this benchmark is improved (latency reduced) by 7.79%. From the turbostat output, it can be observed that the high priority CPUs reached 3000 MHz compared to 2600 MHz. The turbostat output:}(hjd hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubj)}(hXV#turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1 Package Core CPU Bzy_MHz 0 0 0 2151 0 1 1 2166 0 2 2 2175 0 3 3 2175 0 4 4 2175 0 5 5 3000 0 6 6 3000 0 7 7 2180 0 8 8 2662 0 9 9 2176 0 10 10 2175 0 11 11 2176 0 12 12 2176 0 13 13 2661h]hXV#turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1 Package Core CPU Bzy_MHz 0 0 0 2151 0 1 1 2166 0 2 2 2175 0 3 3 2175 0 4 4 2175 0 5 5 3000 0 6 6 3000 0 7 7 2180 0 8 8 2662 0 9 9 2176 0 10 10 2175 0 11 11 2176 0 12 12 2176 0 13 13 2661}hjr sbah}(h]h ]h"]h$]h&]hhuh1jhhhMhj hhubeh}(h]enable-intel-r-sst-bfah ]h"]enable intel(r) sst-bfah$]h&]uh1hhjQhhhhhMubh)}(hhh](h)}(hDisable Intel(R) SST-BFh]hDisable Intel(R) SST-BF}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(h1To disable the Intel(R) SST-BF feature, execute::h]h0To disable the Intel(R) SST-BF feature, execute:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubj)}(h)# intel-speed-select base-freq disable -ah]h)# intel-speed-select base-freq disable -a}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhMhj hhubeh}(h]disable-intel-r-sst-bfah ]h"]disable intel(r) sst-bfah$]h&]uh1hhjQhhhhhMubeh}(h]=intel-r-speed-select-technology-base-frequency-intel-r-sst-bfah ]h"]Cintel(r) speed select technology - base frequency (intel(r) sst-bf)ah$]h&]uh1hhjWhhhhhMubh)}(hhh](h)}(hDIntel(R) Speed Select Technology - Turbo Frequency (Intel(R) SST-TF)h]hDIntel(R) Speed Select Technology - Turbo Frequency (Intel(R) SST-TF)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hX,This feature enables the ability to set different "All core turbo ratio limits" to cores based on the priority. By using this feature, some cores can be configured to get higher turbo frequency by designating them as high priority at the cost of lower or no turbo frequency on the low priority cores.h]hX0This feature enables the ability to set different “All core turbo ratio limits” to cores based on the priority. By using this feature, some cores can be configured to get higher turbo frequency by designating them as high priority at the cost of lower or no turbo frequency on the low priority cores.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(hFor this reason, this feature is only useful when system is busy utilizing all CPUs, but the user wants some configurable option to get high performance on some CPUs.h]hFor this reason, this feature is only useful when system is busy utilizing all CPUs, but the user wants some configurable option to get high performance on some CPUs.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(hXThe support of Intel(R) Speed Select Technology - Turbo Frequency (Intel(R) SST-TF) depends on the Intel(R) Speed Select Technology - Performance Profile (Intel SST-PP) performance level configuration. It is possible that only a certain performance level supports Intel(R) SST-TF. It is also possible that only the base performance level (level = 0) has the support of Intel(R) SST-TF. Hence, first select the desired performance level to enable this feature.h]hXThe support of Intel(R) Speed Select Technology - Turbo Frequency (Intel(R) SST-TF) depends on the Intel(R) Speed Select Technology - Performance Profile (Intel SST-PP) performance level configuration. It is possible that only a certain performance level supports Intel(R) SST-TF. It is also possible that only the base performance level (level = 0) has the support of Intel(R) SST-TF. Hence, first select the desired performance level to enable this feature.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(huIn the system under test here, Intel(R) SST-TF is supported at the base performance level 0, but currently disabled::h]htIn the system under test here, Intel(R) SST-TF is supported at the base performance level 0, but currently disabled:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubj)}(h# intel-speed-select -c 0 perf-profile info -l 0 Intel(R) Speed Select Technology package-0 die-0 cpu-0 perf-profile-level-0 ... ... speed-select-turbo-freq:disabled ... ...h]h# intel-speed-select -c 0 perf-profile info -l 0 Intel(R) Speed Select Technology package-0 die-0 cpu-0 perf-profile-level-0 ... ... speed-select-turbo-freq:disabled ... ...}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhMhj hhubh)}(hTo check if performance can be improved using Intel(R) SST-TF feature, get the turbo frequency properties with Intel(R) SST-TF enabled and compare to the base turbo capability of this system.h]hTo check if performance can be improved using Intel(R) SST-TF feature, get the turbo frequency properties with Intel(R) SST-TF enabled and compare to the base turbo capability of this system.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(hhh](h)}(hGet Base turbo capabilityh]hGet Base turbo capability}(hj- hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj* hhhhhMubh)}(hBTo get the base turbo capability of performance level 0, execute::h]hATo get the base turbo capability of performance level 0, execute:}(hj; hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj* hhubj)}(hXj# intel-speed-select perf-profile info -l 0 Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 perf-profile-level-0 ... ... turbo-ratio-limits-sse bucket-0 core-count:2 max-turbo-frequency(MHz):3200 bucket-1 core-count:4 max-turbo-frequency(MHz):3100 bucket-2 core-count:6 max-turbo-frequency(MHz):3100 bucket-3 core-count:8 max-turbo-frequency(MHz):3100 bucket-4 core-count:10 max-turbo-frequency(MHz):3100 bucket-5 core-count:12 max-turbo-frequency(MHz):3100 bucket-6 core-count:14 max-turbo-frequency(MHz):3100 bucket-7 core-count:16 max-turbo-frequency(MHz):3100h]hXj# intel-speed-select perf-profile info -l 0 Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 perf-profile-level-0 ... ... turbo-ratio-limits-sse bucket-0 core-count:2 max-turbo-frequency(MHz):3200 bucket-1 core-count:4 max-turbo-frequency(MHz):3100 bucket-2 core-count:6 max-turbo-frequency(MHz):3100 bucket-3 core-count:8 max-turbo-frequency(MHz):3100 bucket-4 core-count:10 max-turbo-frequency(MHz):3100 bucket-5 core-count:12 max-turbo-frequency(MHz):3100 bucket-6 core-count:14 max-turbo-frequency(MHz):3100 bucket-7 core-count:16 max-turbo-frequency(MHz):3100}hjI sbah}(h]h ]h"]h$]h&]hhuh1jhhhMhj* hhubh)}(hBased on the data above, when all the CPUS are busy, the max. frequency of 3100 MHz can be achieved. If there is some busy workload on cpu 0 - 11 (e.g. stress) and on CPU 12 and 13, execute "hackbench pipe" workload::h]hBased on the data above, when all the CPUS are busy, the max. frequency of 3100 MHz can be achieved. If there is some busy workload on cpu 0 - 11 (e.g. stress) and on CPU 12 and 13, execute “hackbench pipe” workload:}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM'hj* hhubj)}(h# taskset -c 12,13 perf bench -r 100 sched pipe # Running 'sched/pipe' benchmark: # Executed 1000000 pipe operations between two processes Total time: 5.705 [sec] 5.705488 usecs/op 175269 ops/sech]h# taskset -c 12,13 perf bench -r 100 sched pipe # Running 'sched/pipe' benchmark: # Executed 1000000 pipe operations between two processes Total time: 5.705 [sec] 5.705488 usecs/op 175269 ops/sec}hje sbah}(h]h ]h"]h$]h&]hhuh1jhhhM+hj* hhubh)}(hThe turbostat output::h]hThe turbostat output:}(hjs hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM2hj* hhubj)}(hXV#turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1 Package Core CPU Bzy_MHz 0 0 0 3000 0 1 1 3000 0 2 2 3000 0 3 3 3000 0 4 4 3000 0 5 5 3100 0 6 6 3100 0 7 7 3000 0 8 8 3100 0 9 9 3000 0 10 10 3000 0 11 11 3000 0 12 12 3100 0 13 13 3100h]hXV#turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1 Package Core CPU Bzy_MHz 0 0 0 3000 0 1 1 3000 0 2 2 3000 0 3 3 3000 0 4 4 3000 0 5 5 3100 0 6 6 3100 0 7 7 3000 0 8 8 3100 0 9 9 3000 0 10 10 3000 0 11 11 3000 0 12 12 3100 0 13 13 3100}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhM4hj* hhubh)}(hBased on turbostat output, the performance is limited by frequency cap of 3100 MHz. To check if the hackbench performance can be improved for CPU 12 and CPU 13, first check the capability of the Intel(R) SST-TF feature for this performance level.h]hBased on turbostat output, the performance is limited by frequency cap of 3100 MHz. To check if the hackbench performance can be improved for CPU 12 and CPU 13, first check the capability of the Intel(R) SST-TF feature for this performance level.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMEhj* hhubeh}(h]get-base-turbo-capabilityah ]h"]get base turbo capabilityah$]h&]uh1hhj hhhhhMubh)}(hhh](h)}(hGet Intel(R) SST-TF Capabilityh]hGet Intel(R) SST-TF Capability}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMKubh)}(hBTo get the capability, the "turbo-freq info" command can be used::h]hETo get the capability, the “turbo-freq info” command can be used:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMMhj hhubj)}(hX# intel-speed-select turbo-freq info -l 0 Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 speed-select-turbo-freq bucket-0 high-priority-cores-count:2 high-priority-max-frequency(MHz):3200 high-priority-max-avx2-frequency(MHz):3200 high-priority-max-avx512-frequency(MHz):3100 bucket-1 high-priority-cores-count:4 high-priority-max-frequency(MHz):3100 high-priority-max-avx2-frequency(MHz):3000 high-priority-max-avx512-frequency(MHz):2900 bucket-2 high-priority-cores-count:6 high-priority-max-frequency(MHz):3100 high-priority-max-avx2-frequency(MHz):3000 high-priority-max-avx512-frequency(MHz):2900 speed-select-turbo-freq-clip-frequencies low-priority-max-frequency(MHz):2600 low-priority-max-avx2-frequency(MHz):2400 low-priority-max-avx512-frequency(MHz):2100h]hX# intel-speed-select turbo-freq info -l 0 Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-0 speed-select-turbo-freq bucket-0 high-priority-cores-count:2 high-priority-max-frequency(MHz):3200 high-priority-max-avx2-frequency(MHz):3200 high-priority-max-avx512-frequency(MHz):3100 bucket-1 high-priority-cores-count:4 high-priority-max-frequency(MHz):3100 high-priority-max-avx2-frequency(MHz):3000 high-priority-max-avx512-frequency(MHz):2900 bucket-2 high-priority-cores-count:6 high-priority-max-frequency(MHz):3100 high-priority-max-avx2-frequency(MHz):3000 high-priority-max-avx512-frequency(MHz):2900 speed-select-turbo-freq-clip-frequencies low-priority-max-frequency(MHz):2600 low-priority-max-avx2-frequency(MHz):2400 low-priority-max-avx512-frequency(MHz):2100}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhMOhj hhubh)}(hXBased on the output above, there is an Intel(R) SST-TF bucket for which there are two high priority cores. If only two high priority cores are set, then max. turbo frequency on those cores can be increased to 3200 MHz. This is 100 MHz more than the base turbo capability for all cores.h]hXBased on the output above, there is an Intel(R) SST-TF bucket for which there are two high priority cores. If only two high priority cores are set, then max. turbo frequency on those cores can be increased to 3200 MHz. This is 100 MHz more than the base turbo capability for all cores.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMjhj hhubh)}(hIn turn, for the hackbench workload, two CPUs can be set as high priority and rest as low priority. One side effect is that once enabled, the low priority cores will be clipped to a lower frequency of 2600 MHz.h]hIn turn, for the hackbench workload, two CPUs can be set as high priority and rest as low priority. One side effect is that once enabled, the low priority cores will be clipped to a lower frequency of 2600 MHz.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMohj hhubeh}(h]get-intel-r-sst-tf-capabilityah ]h"]get intel(r) sst-tf capabilityah$]h&]uh1hhj hhhhhMKubh)}(hhh](h)}(hEnable Intel(R) SST-TFh]hEnable Intel(R) SST-TF}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMtubh)}(h$To enable Intel(R) SST-TF, execute::h]h#To enable Intel(R) SST-TF, execute:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMvhj hhubj)}(hX8# intel-speed-select -c 12,13 turbo-freq enable -a Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-12 turbo-freq enable:success package-0 die-0 cpu-13 turbo-freq enable:success package--1 die-0 cpu-63 turbo-freq --auto enable:successh]hX8# intel-speed-select -c 12,13 turbo-freq enable -a Intel(R) Speed Select Technology Executing on CPU model: X package-0 die-0 cpu-12 turbo-freq enable:success package-0 die-0 cpu-13 turbo-freq enable:success package--1 die-0 cpu-63 turbo-freq --auto enable:success}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhMxhj hhubh)}(hX0In this case, the option "-a" is optional. If set, it enables Intel(R) SST-TF feature and also sets the CPUs to high and low priority using Intel Speed Select Technology Core Power (Intel(R) SST-CP) features. The CPU numbers passed with "-c" arguments are marked as high priority, including its siblings.h]hX8In this case, the option “-a” is optional. If set, it enables Intel(R) SST-TF feature and also sets the CPUs to high and low priority using Intel Speed Select Technology Core Power (Intel(R) SST-CP) features. The CPU numbers passed with “-c” arguments are marked as high priority, including its siblings.}(hj# hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(h`If -a option is not used, then the following steps are required before enabling Intel(R) SST-TF:h]h`If -a option is not used, then the following steps are required before enabling Intel(R) SST-TF:}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(hhh](h)}(hWDiscover Intel(R) SST-TF and note buckets of high priority cores and maximum frequency h]h)}(hVDiscover Intel(R) SST-TF and note buckets of high priority cores and maximum frequencyh]hVDiscover Intel(R) SST-TF and note buckets of high priority cores and maximum frequency}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjB ubah}(h]h ]h"]h$]h&]uh1hhj? hhhhhNubh)}(hEEnable CLOS using core-power feature set - Configure CLOS parameters h]h)}(hDEnable CLOS using core-power feature set - Configure CLOS parametersh]hDEnable CLOS using core-power feature set - Configure CLOS parameters}(hj^ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjZ ubah}(h]h ]h"]h$]h&]uh1hhj? hhhhhNubh)}(hlSubscribe desired CPUs to CLOS groups making sure that high priority cores are set to the maximum frequency h]h)}(hkSubscribe desired CPUs to CLOS groups making sure that high priority cores are set to the maximum frequencyh]hkSubscribe desired CPUs to CLOS groups making sure that high priority cores are set to the maximum frequency}(hjv hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjr ubah}(h]h ]h"]h$]h&]uh1hhj? hhhhhNubeh}(h]h ]h"]h$]h&]j9j:uh1hhhhMhj hhubh)}(h^If the same hackbench workload is executed, schedule hackbench threads on high priority CPUs::h]h]If the same hackbench workload is executed, schedule hackbench threads on high priority CPUs:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubj)}(h#taskset -c 12,13 perf bench -r 100 sched pipe # Running 'sched/pipe' benchmark: # Executed 1000000 pipe operations between two processes Total time: 5.510 [sec] 5.510165 usecs/op 180826 ops/sech]h#taskset -c 12,13 perf bench -r 100 sched pipe # Running 'sched/pipe' benchmark: # Executed 1000000 pipe operations between two processes Total time: 5.510 [sec] 5.510165 usecs/op 180826 ops/sec}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhMhj hhubh)}(hThis improved performance by around 3.3% improvement on a busy system. Here the turbostat output will show that the CPU 12 and CPU 13 are getting 100 MHz boost. The turbostat output::h]hThis improved performance by around 3.3% improvement on a busy system. Here the turbostat output will show that the CPU 12 and CPU 13 are getting 100 MHz boost. The turbostat output:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubj)}(h#turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1 Package Core CPU Bzy_MHz ... 0 12 12 3200 0 13 13 3200h]h#turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1 Package Core CPU Bzy_MHz ... 0 12 12 3200 0 13 13 3200}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhMhj hhubeh}(h]enable-intel-r-sst-tfah ]h"]enable intel(r) sst-tfah$]h&]uh1hhj hhhhhMtubeh}(h]>intel-r-speed-select-technology-turbo-frequency-intel-r-sst-tfah ]h"]Dintel(r) speed select technology - turbo frequency (intel(r) sst-tf)ah$]h&]uh1hhjWhhhhhMubeh}(h]%intel-speed-select-configuration-toolah ]h"]%intel-speed-select configuration toolah$]h&]uh1hhhhhhhhKubeh}(h]*intel-r-speed-select-technology-user-guideah ]h"]+intel(r) speed select technology user guideah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j j j j jjjOjLjjjjjjj}jzj0j-jjjjjjjNjKjjjEjBjzjwjjjFjCj j j< j9 j j| j j j j j j j j j j j j u nametypes}(j j jjOjjjj}j0jjjjNjjEjzjjFj j< j j j j j j j uh}(j hj jWjjjLjjjRjjqjjjzjj-jjj3jjjjjKjjjjBjjwjHjj}jCjj jQj9 jj| j? j j j j j j j j* j j j j u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages](hsystem_message)}(hhh]h)}(h`Blank line missing before literal block (after the "::")? Interpreted as a definition list item.h]hdBlank line missing before literal block (after the “::”)? Interpreted as a definition list item.}(hjr hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjo ubah}(h]h ]h"]h$]h&]levelKtypeINFOlineM-sourcehuh1jm hjCubjn )}(hhh]h)}(h`Blank line missing before literal block (after the "::")? Interpreted as a definition list item.h]hdBlank line missing before literal block (after the “::”)? Interpreted as a definition list item.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypej lineM1sourcehuh1jm hjrubetransform_messages] transformerN include_log] decorationNhhub.