1 .. SPDX-License-Identifier: GPL-2.0
3 ============================================================
4 Intel(R) Speed Select Technology User Guide
5 ============================================================
7 The Intel(R) Speed Select Technology (Intel(R) SST) provides a powerful new
8 collection of features that give more granular control over CPU performance.
9 With Intel(R) SST, one server can be configured for power and performance for a
10 variety of diverse workload requirements.
12 Refer to the links below for an overview of the technology:
14 - https://www.intel.com/content/www/us/en/architecture-and-technology/speed-select-technology-article.html
15 - https://builders.intel.com/docs/networkbuilders/intel-speed-select-technology-base-frequency-enhancing-performance.pdf
17 These capabilities are further enhanced in some of the newer generations of
18 server platforms where these features can be enumerated and controlled
19 dynamically without pre-configuring via BIOS setup options. This dynamic
20 configuration is done via mailbox commands to the hardware. One way to enumerate
21 and configure these features is by using the Intel Speed Select utility.
23 This document explains how to use the Intel Speed Select tool to enumerate and
24 control Intel(R) SST features. This document gives example commands and explains
25 how these commands change the power and performance profile of the system under
26 test. Using this tool as an example, customers can replicate the messaging
27 implemented in the tool in their production software.
29 intel-speed-select configuration tool
30 ======================================
32 Most Linux distribution packages may include the "intel-speed-select" tool. If not,
33 it can be built by downloading the Linux kernel tree from kernel.org. Once
34 downloaded, the tool can be built without building the full kernel.
36 From the kernel tree, run the following commands::
38 # cd tools/power/x86/intel-speed-select/
45 To get help with the tool, execute the command below::
47 # intel-speed-select --help
49 The top-level help describes arguments and features. Notice that there is a
50 multi-level help structure in the tool. For example, to get help for the feature "perf-profile"::
52 # intel-speed-select perf-profile --help
54 To get help on a command, another level of help is provided. For example for the command info "info"::
56 # intel-speed-select perf-profile info --help
58 Summary of platform capability
59 ------------------------------
60 To check the current platform and driver capabilities, execute::
62 #intel-speed-select --info
64 For example on a test system::
66 # intel-speed-select --info
67 Intel(R) Speed Select Technology
68 Executing on CPU model: X
69 Platform: API version : 1
70 Platform: Driver version : 1
71 Platform: mbox supported : 1
72 Platform: mmio supported : 1
73 Intel(R) SST-PP (feature perf-profile) is supported
74 TDP level change control is unlocked, max level: 4
75 Intel(R) SST-TF (feature turbo-freq) is supported
76 Intel(R) SST-BF (feature base-freq) is not supported
77 Intel(R) SST-CP (feature core-power) is supported
79 Intel(R) Speed Select Technology - Performance Profile (Intel(R) SST-PP)
80 ------------------------------------------------------------------------
82 This feature allows configuration of a server dynamically based on workload
83 performance requirements. This helps users during deployment as they do not have
84 to choose a specific server configuration statically. This Intel(R) Speed Select
85 Technology - Performance Profile (Intel(R) SST-PP) feature introduces a mechanism
86 that allows multiple optimized performance profiles per system. Each profile
87 defines a set of CPUs that need to be online and rest offline to sustain a
88 guaranteed base frequency. Once the user issues a command to use a specific
89 performance profile and meet CPU online/offline requirement, the user can expect
90 a change in the base frequency dynamically. This feature is called
91 "perf-profile" when using the Intel Speed Select tool.
93 Number or performance levels
94 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
96 There can be multiple performance profiles on a system. To get the number of
97 profiles, execute the command below::
99 # intel-speed-select perf-profile get-config-levels
100 Intel(R) Speed Select Technology
101 Executing on CPU model: X
111 On this system under test, there are 4 performance profiles in addition to the
112 base performance profile (which is performance level 0).
117 Even if there are multiple performance profiles, it is possible that they
118 are locked. If they are locked, users cannot issue a command to change the
119 performance state. It is possible that there is a BIOS setup to unlock or check
120 with your system vendor.
122 To check if the system is locked, execute the following command::
124 # intel-speed-select perf-profile get-lock-status
125 Intel(R) Speed Select Technology
126 Executing on CPU model: X
136 In this case, lock status is 0, which means that the system is unlocked.
138 Properties of a performance level
139 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
141 To get properties of a specific performance level (For example for the level 0, below), execute the command below::
143 # intel-speed-select perf-profile info -l 0
144 Intel(R) Speed Select Technology
145 Executing on CPU model: X
151 enable-cpu-mask:000003ff,f0003fff
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
153 thermal-design-power-ratio:26
154 base-frequency(MHz):2600
155 speed-select-turbo-freq:disabled
156 speed-select-base-freq:disabled
160 Here -l option is used to specify a performance level.
162 If the option -l is omitted, then this command will print information about all
163 the performance levels. The above command is printing properties of the
166 For this performance profile, the list of CPUs displayed by the
167 "enable-cpu-mask/enable-cpu-list" at the max can be "online." When that
168 condition is met, then base frequency of 2600 MHz can be maintained. To
169 understand more, execute "intel-speed-select perf-profile info" for performance
172 # intel-speed-select perf-profile info -l 4
173 Intel(R) Speed Select Technology
174 Executing on CPU model: X
180 enable-cpu-mask:000000fa,f0000faf
181 enable-cpu-list:0,1,2,3,5,7,8,9,10,11,28,29,30,31,33,35,36,37,38,39
182 thermal-design-power-ratio:28
183 base-frequency(MHz):2800
184 speed-select-turbo-freq:disabled
185 speed-select-base-freq:unsupported
189 There are fewer CPUs in the "enable-cpu-mask/enable-cpu-list". Consequently, if
190 the user only keeps these CPUs online and the rest "offline," then the base
191 frequency is increased to 2.8 GHz compared to 2.6 GHz at performance level 0.
193 Get current performance level
194 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
196 To get the current performance level, execute::
198 # intel-speed-select perf-profile get-config-current-level
199 Intel(R) Speed Select Technology
200 Executing on CPU model: X
204 get-config-current_level:0
206 First verify that the base_frequency displayed by the cpufreq sysfs is correct::
208 # cat /sys/devices/system/cpu/cpu0/cpufreq/base_frequency
211 This matches the base-frequency (MHz) field value displayed from the
212 "perf-profile info" command for performance level 0(cpufreq frequency is in
215 To check if the average frequency is equal to the base frequency for a 100% busy
216 workload, disable turbo::
218 # echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo
220 Then runs a busy workload on all CPUs, for example::
224 To verify the base frequency, run turbostat::
226 #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
228 Package Core CPU Bzy_MHz
238 Changing performance level
239 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
241 To the change the performance level to 4, execute::
243 # intel-speed-select -d perf-profile set-config-level -l 4 -o
244 Intel(R) Speed Select Technology
245 Executing on CPU model: X
250 set_tdp_level:success
252 In the command above, "-o" is optional. If it is specified, then it will also
253 offline CPUs which are not present in the enable_cpu_mask for this performance
256 Now if the base_frequency is checked::
258 #cat /sys/devices/system/cpu/cpu0/cpufreq/base_frequency
261 Which shows that the base frequency now increased from 2600 MHz at performance
262 level 0 to 2800 MHz at performance level 4. As a result, any workload, which can
263 use fewer CPUs, can see a boost of 200 MHz compared to performance level 0.
265 Changing performance level via BMC Interface
266 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
268 It is possible to change SST-PP level using out of band (OOB) agent (Via some
269 remote management console, through BMC "Baseboard Management Controller"
270 interface). This mode is supported from the Sapphire Rapids processor
271 generation. The kernel and tool change to support this mode is added to Linux
272 kernel version 5.18. To enable this feature, kernel config
273 "CONFIG_INTEL_HFI_THERMAL" is required. The minimum version of the tool
274 is "v1.12" to support this feature, which is part of Linux kernel version 5.18.
276 To support such configuration, this tool can be used as a daemon. Add
277 a command line option --oob::
279 # intel-speed-select --oob
280 Intel(R) Speed Select Technology
281 Executing on CPU model:143[0x8f]
282 OOB mode is enabled and will run as daemon
284 In this mode the tool will online/offline CPUs based on the new performance
287 Check presence of other Intel(R) SST features
288 ---------------------------------------------
290 Each of the performance profiles also specifies weather there is support of
291 other two Intel(R) SST features (Intel(R) Speed Select Technology - Base Frequency
292 (Intel(R) SST-BF) and Intel(R) Speed Select Technology - Turbo Frequency (Intel
295 For example, from the output of "perf-profile info" above, for level 0 and level
299 speed-select-turbo-freq:disabled
300 speed-select-base-freq:disabled
303 speed-select-turbo-freq:disabled
304 speed-select-base-freq:unsupported
306 Given these results, the "speed-select-base-freq" (Intel(R) SST-BF) in level 4
307 changed from "disabled" to "unsupported" compared to performance level 0.
309 This means that at performance level 4, the "speed-select-base-freq" feature is
310 not supported. However, at performance level 0, this feature is "supported", but
311 currently "disabled", meaning the user has not activated this feature. Whereas
312 "speed-select-turbo-freq" (Intel(R) SST-TF) is supported at both performance
313 levels, but currently not activated by the user.
315 The Intel(R) SST-BF and the Intel(R) SST-TF features are built on a foundation
316 technology called Intel(R) Speed Select Technology - Core Power (Intel(R) SST-CP).
317 The platform firmware enables this feature when Intel(R) SST-BF or Intel(R) SST-TF
318 is supported on a platform.
320 Intel(R) Speed Select Technology Core Power (Intel(R) SST-CP)
321 ---------------------------------------------------------------
323 Intel(R) Speed Select Technology Core Power (Intel(R) SST-CP) is an interface that
324 allows users to define per core priority. This defines a mechanism to distribute
325 power among cores when there is a power constrained scenario. This defines a
326 class of service (CLOS) configuration.
328 The user can configure up to 4 class of service configurations. Each CLOS group
329 configuration allows definitions of parameters, which affects how the frequency
330 can be limited and power is distributed. Each CPU core can be tied to a class of
331 service and hence an associated priority. The granularity is at core level not
334 Enable CLOS based prioritization
335 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
337 To use CLOS based prioritization feature, firmware must be informed to enable
338 and use a priority type. There is a default per platform priority type, which
339 can be changed with optional command line parameter.
341 To enable and check the options, execute::
343 # intel-speed-select core-power enable --help
344 Intel(R) Speed Select Technology
345 Executing on CPU model: X
346 Enable core-power for a package/die
347 Clos Enable: Specify priority type with [--priority|-p]
348 0: Proportional, 1: Ordered
350 There are two types of priority types:
354 Priority for ordered throttling is defined based on the index of the assigned
355 CLOS group. Where CLOS0 gets highest priority (throttled last).
358 CLOS0 > CLOS1 > CLOS2 > CLOS3.
362 When proportional priority is used, there is an additional parameter called
363 frequency_weight, which can be specified per CLOS group. The goal of
364 proportional priority is to provide each core with the requested min., then
365 distribute all remaining (excess/deficit) budgets in proportion to a defined
366 weight. This proportional priority can be configured using "core-power config"
369 To enable with the platform default priority type, execute::
371 # intel-speed-select core-power enable
372 Intel(R) Speed Select Technology
373 Executing on CPU model: X
385 The scope of this enable is per package or die scoped when a package contains
386 multiple dies. To check if CLOS is enabled and get priority type, "core-power
387 info" command can be used. For example to check the status of core-power feature
390 # intel-speed-select -c 0 core-power info
391 Intel(R) Speed Select Technology
392 Executing on CPU model: X
397 support-status:supported
398 enable-status:enabled
399 clos-enable-status:enabled
400 priority-type:proportional
405 support-status:supported
406 enable-status:enabled
407 clos-enable-status:enabled
408 priority-type:proportional
410 Configuring CLOS groups
411 ~~~~~~~~~~~~~~~~~~~~~~~
413 Each CLOS group has its own attributes including min, max, freq_weight and
414 desired. These parameters can be configured with "core-power config" command.
415 Defaults will be used if user skips setting a parameter except clos id, which is
416 mandatory. To check core-power config options, execute::
418 # intel-speed-select core-power config --help
419 Intel(R) Speed Select Technology
420 Executing on CPU model: X
421 Set core-power configuration for one of the four clos ids
422 Specify targeted clos id with [--clos|-c]
423 Specify clos Proportional Priority [--weight|-w]
424 Specify clos min in MHz with [--min|-n]
425 Specify clos max in MHz with [--max|-m]
429 # intel-speed-select core-power config -c 0
430 Intel(R) Speed Select Technology
431 Executing on CPU model: X
432 clos epp is not specified, default: 0
433 clos frequency weight is not specified, default: 0
434 clos min is not specified, default: 0 MHz
435 clos max is not specified, default: 25500 MHz
436 clos desired is not specified, default: 0
448 The user has the option to change defaults. For example, the user can change the
449 "min" and set the base frequency to always get guaranteed base frequency.
451 Get the current CLOS configuration
452 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
454 To check the current configuration, "core-power get-config" can be used. For
455 example, to get the configuration of CLOS 0::
457 # intel-speed-select core-power get-config -c 0
458 Intel(R) Speed Select Technology
459 Executing on CPU model: X
466 clos-proportional-priority:0
468 clos-max:Max Turbo frequency
476 clos-proportional-priority:0
478 clos-max:Max Turbo frequency
481 Associating a CPU with a CLOS group
482 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
484 To associate a CPU to a CLOS group "core-power assoc" command can be used::
486 # intel-speed-select core-power assoc --help
487 Intel(R) Speed Select Technology
488 Executing on CPU model: X
489 Associate a clos id to a CPU
490 Specify targeted clos id with [--clos|-c]
493 For example to associate CPU 10 to CLOS group 3, execute::
495 # intel-speed-select -c 10 core-power assoc -c 3
496 Intel(R) Speed Select Technology
497 Executing on CPU model: X
504 Once a CPU is associated, its sibling CPUs are also associated to a CLOS group.
505 Once associated, avoid changing Linux "cpufreq" subsystem scaling frequency
508 To check the existing association for a CPU, "core-power get-assoc" command can
509 be used. For example, to get association of CPU 10, execute::
511 # intel-speed-select -c 10 core-power get-assoc
512 Intel(R) Speed Select Technology
513 Executing on CPU model: X
520 This shows that CPU 10 is part of a CLOS group 3.
523 Disable CLOS based prioritization
524 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
526 To disable, execute::
528 # intel-speed-select core-power disable
530 Some features like Intel(R) SST-TF can only be enabled when CLOS based prioritization
531 is enabled. For this reason, disabling while Intel(R) SST-TF is enabled can cause
532 Intel(R) SST-TF to fail. This will cause the "disable" command to display an error
533 if Intel(R) SST-TF is already enabled. In turn, to disable, the Intel(R) SST-TF
534 feature must be disabled first.
536 Intel(R) Speed Select Technology - Base Frequency (Intel(R) SST-BF)
537 -------------------------------------------------------------------
539 The Intel(R) Speed Select Technology - Base Frequency (Intel(R) SST-BF) feature lets
540 the user control base frequency. If some critical workload threads demand
541 constant high guaranteed performance, then this feature can be used to execute
542 the thread at higher base frequency on specific sets of CPUs (high priority
543 CPUs) at the cost of lower base frequency (low priority CPUs) on other CPUs.
544 This feature does not require offline of the low priority CPUs.
546 The support of Intel(R) SST-BF depends on the Intel(R) Speed Select Technology -
547 Performance Profile (Intel(R) SST-PP) performance level configuration. It is
548 possible that only certain performance levels support Intel(R) SST-BF. It is also
549 possible that only base performance level (level = 0) has support of Intel
550 SST-BF. Consequently, first select the desired performance level to enable this
553 In the system under test here, Intel(R) SST-BF is supported at the base
554 performance level 0, but currently disabled. For example for the level 0::
556 # intel-speed-select -c 0 perf-profile info -l 0
557 Intel(R) Speed Select Technology
558 Executing on CPU model: X
565 speed-select-base-freq:disabled
568 Before enabling Intel(R) SST-BF and measuring its impact on a workload
569 performance, execute some workload and measure performance and get a baseline
570 performance to compare against.
572 Here the user wants more guaranteed performance. For this reason, it is likely
573 that turbo is disabled. To disable turbo, execute::
575 #echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo
577 Based on the output of the "intel-speed-select perf-profile info -l 0" base
578 frequency of guaranteed frequency 2600 MHz.
581 Measure baseline performance for comparison
582 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
584 To compare, pick a multi-threaded workload where each thread can be scheduled on
585 separate CPUs. "Hackbench pipe" test is a good example on how to improve
586 performance using Intel(R) SST-BF.
588 Below, the workload is measuring average scheduler wakeup latency, so a lower
589 number means better performance::
591 # taskset -c 3,4 perf bench -r 100 sched pipe
592 # Running 'sched/pipe' benchmark:
593 # Executed 1000000 pipe operations between two processes
594 Total time: 6.102 [sec]
598 While running the above test, if we take turbostat output, it will show us that
599 2 of the CPUs are busy and reaching max. frequency (which would be the base
600 frequency as the turbo is disabled). The turbostat output::
602 #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
603 Package Core CPU Bzy_MHz
619 From the above turbostat output, both CPU 3 and 4 are very busy and reaching
620 full guaranteed frequency of 2600 MHz.
622 Intel(R) SST-BF Capabilities
623 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
625 To get capabilities of Intel(R) SST-BF for the current performance level 0,
628 # intel-speed-select base-freq info -l 0
629 Intel(R) Speed Select Technology
630 Executing on CPU model: X
634 speed-select-base-freq
635 high-priority-base-frequency(MHz):3000
636 high-priority-cpu-mask:00000216,00002160
637 high-priority-cpu-list:5,6,8,13,33,34,36,41
638 low-priority-base-frequency(MHz):2400
639 tjunction-temperature(C):125
640 thermal-design-power(W):205
642 The above capabilities show that there are some CPUs on this system that can
643 offer base frequency of 3000 MHz compared to the standard base frequency at this
644 performance levels. Nevertheless, these CPUs are fixed, and they are presented
645 via high-priority-cpu-list/high-priority-cpu-mask. But if this Intel(R) SST-BF
646 feature is selected, the low priorities CPUs (which are not in
647 high-priority-cpu-list) can only offer up to 2400 MHz. As a result, if this
648 clipping of low priority CPUs is acceptable, then the user can enable Intel
649 SST-BF feature particularly for the above "sched pipe" workload since only two
650 CPUs are used, they can be scheduled on high priority CPUs and can get boost of
653 Enable Intel(R) SST-BF
654 ~~~~~~~~~~~~~~~~~~~~~~
656 To enable Intel(R) SST-BF feature, execute::
658 # intel-speed-select base-freq enable -a
659 Intel(R) Speed Select Technology
660 Executing on CPU model: X
672 In this case, -a option is optional. This not only enables Intel(R) SST-BF, but it
673 also adjusts the priority of cores using Intel(R) Speed Select Technology Core
674 Power (Intel(R) SST-CP) features. This option sets the minimum performance of each
675 Intel(R) Speed Select Technology - Performance Profile (Intel(R) SST-PP) class to
676 maximum performance so that the hardware will give maximum performance possible
679 If -a option is not used, then the following steps are required before enabling
682 - Discover Intel(R) SST-BF and note low and high priority base frequency
683 - Note the high priority CPU list
684 - Enable CLOS using core-power feature set
685 - Configure CLOS parameters. Use CLOS.min to set to minimum performance
686 - Subscribe desired CPUs to CLOS groups
688 With this configuration, if the same workload is executed by pinning the
689 workload to high priority CPUs (CPU 5 and 6 in this case)::
691 #taskset -c 5,6 perf bench -r 100 sched pipe
692 # Running 'sched/pipe' benchmark:
693 # Executed 1000000 pipe operations between two processes
694 Total time: 5.627 [sec]
698 This way, by enabling Intel(R) SST-BF, the performance of this benchmark is
699 improved (latency reduced) by 7.79%. From the turbostat output, it can be
700 observed that the high priority CPUs reached 3000 MHz compared to 2600 MHz.
701 The turbostat output::
703 #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
704 Package Core CPU Bzy_MHz
720 Disable Intel(R) SST-BF
721 ~~~~~~~~~~~~~~~~~~~~~~~
723 To disable the Intel(R) SST-BF feature, execute::
725 # intel-speed-select base-freq disable -a
728 Intel(R) Speed Select Technology - Turbo Frequency (Intel(R) SST-TF)
729 --------------------------------------------------------------------
731 This feature enables the ability to set different "All core turbo ratio limits"
732 to cores based on the priority. By using this feature, some cores can be
733 configured to get higher turbo frequency by designating them as high priority at
734 the cost of lower or no turbo frequency on the low priority cores.
736 For this reason, this feature is only useful when system is busy utilizing all
737 CPUs, but the user wants some configurable option to get high performance on
740 The support of Intel(R) Speed Select Technology - Turbo Frequency (Intel(R) SST-TF)
741 depends on the Intel(R) Speed Select Technology - Performance Profile (Intel
742 SST-PP) performance level configuration. It is possible that only a certain
743 performance level supports Intel(R) SST-TF. It is also possible that only the base
744 performance level (level = 0) has the support of Intel(R) SST-TF. Hence, first
745 select the desired performance level to enable this feature.
747 In the system under test here, Intel(R) SST-TF is supported at the base
748 performance level 0, but currently disabled::
750 # intel-speed-select -c 0 perf-profile info -l 0
751 Intel(R) Speed Select Technology
758 speed-select-turbo-freq:disabled
763 To check if performance can be improved using Intel(R) SST-TF feature, get the turbo
764 frequency properties with Intel(R) SST-TF enabled and compare to the base turbo
765 capability of this system.
767 Get Base turbo capability
768 ~~~~~~~~~~~~~~~~~~~~~~~~~
770 To get the base turbo capability of performance level 0, execute::
772 # intel-speed-select perf-profile info -l 0
773 Intel(R) Speed Select Technology
774 Executing on CPU model: X
781 turbo-ratio-limits-sse
784 max-turbo-frequency(MHz):3200
787 max-turbo-frequency(MHz):3100
790 max-turbo-frequency(MHz):3100
793 max-turbo-frequency(MHz):3100
796 max-turbo-frequency(MHz):3100
799 max-turbo-frequency(MHz):3100
802 max-turbo-frequency(MHz):3100
805 max-turbo-frequency(MHz):3100
807 Based on the data above, when all the CPUS are busy, the max. frequency of 3100
808 MHz can be achieved. If there is some busy workload on cpu 0 - 11 (e.g. stress)
809 and on CPU 12 and 13, execute "hackbench pipe" workload::
811 # taskset -c 12,13 perf bench -r 100 sched pipe
812 # Running 'sched/pipe' benchmark:
813 # Executed 1000000 pipe operations between two processes
814 Total time: 5.705 [sec]
818 The turbostat output::
820 #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
821 Package Core CPU Bzy_MHz
837 Based on turbostat output, the performance is limited by frequency cap of 3100
838 MHz. To check if the hackbench performance can be improved for CPU 12 and CPU
839 13, first check the capability of the Intel(R) SST-TF feature for this performance
842 Get Intel(R) SST-TF Capability
843 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
845 To get the capability, the "turbo-freq info" command can be used::
847 # intel-speed-select turbo-freq info -l 0
848 Intel(R) Speed Select Technology
849 Executing on CPU model: X
853 speed-select-turbo-freq
855 high-priority-cores-count:2
856 high-priority-max-frequency(MHz):3200
857 high-priority-max-avx2-frequency(MHz):3200
858 high-priority-max-avx512-frequency(MHz):3100
860 high-priority-cores-count:4
861 high-priority-max-frequency(MHz):3100
862 high-priority-max-avx2-frequency(MHz):3000
863 high-priority-max-avx512-frequency(MHz):2900
865 high-priority-cores-count:6
866 high-priority-max-frequency(MHz):3100
867 high-priority-max-avx2-frequency(MHz):3000
868 high-priority-max-avx512-frequency(MHz):2900
869 speed-select-turbo-freq-clip-frequencies
870 low-priority-max-frequency(MHz):2600
871 low-priority-max-avx2-frequency(MHz):2400
872 low-priority-max-avx512-frequency(MHz):2100
874 Based on the output above, there is an Intel(R) SST-TF bucket for which there are
875 two high priority cores. If only two high priority cores are set, then max.
876 turbo frequency on those cores can be increased to 3200 MHz. This is 100 MHz
877 more than the base turbo capability for all cores.
879 In turn, for the hackbench workload, two CPUs can be set as high priority and
880 rest as low priority. One side effect is that once enabled, the low priority
881 cores will be clipped to a lower frequency of 2600 MHz.
883 Enable Intel(R) SST-TF
884 ~~~~~~~~~~~~~~~~~~~~~~
886 To enable Intel(R) SST-TF, execute::
888 # intel-speed-select -c 12,13 turbo-freq enable -a
889 Intel(R) Speed Select Technology
890 Executing on CPU model: X
907 In this case, the option "-a" is optional. If set, it enables Intel(R) SST-TF
908 feature and also sets the CPUs to high and low priority using Intel Speed
909 Select Technology Core Power (Intel(R) SST-CP) features. The CPU numbers passed
910 with "-c" arguments are marked as high priority, including its siblings.
912 If -a option is not used, then the following steps are required before enabling
915 - Discover Intel(R) SST-TF and note buckets of high priority cores and maximum frequency
917 - Enable CLOS using core-power feature set - Configure CLOS parameters
919 - Subscribe desired CPUs to CLOS groups making sure that high priority cores are set to the maximum frequency
921 If the same hackbench workload is executed, schedule hackbench threads on high
924 #taskset -c 12,13 perf bench -r 100 sched pipe
925 # Running 'sched/pipe' benchmark:
926 # Executed 1000000 pipe operations between two processes
927 Total time: 5.510 [sec]
931 This improved performance by around 3.3% improvement on a busy system. Here the
932 turbostat output will show that the CPU 12 and CPU 13 are getting 100 MHz boost.
933 The turbostat output::
935 #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
936 Package Core CPU Bzy_MHz