Lines Matching +full:4 +full:- +full:cpu
1 .. SPDX-License-Identifier: GPL-2.0
8 collection of features that give more granular control over CPU performance.
14 - https://www.intel.com/content/www/us/en/architecture-and-technology/speed-select-technology-artic…
15 - https://builders.intel.com/docs/networkbuilders/intel-speed-select-technology-base-frequency-enha…
19 dynamically without pre-configuring via BIOS setup options. This dynamic
29 intel-speed-select configuration tool
32 Most Linux distribution packages may include the "intel-speed-select" tool. If not,
38 # cd tools/power/x86/intel-speed-select/
43 ------------
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
56 # intel-speed-select perf-profile info --help
59 ------------------------------
62 #intel-speed-select --info
66 # intel-speed-select --info
68 Executing on CPU model: X
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 ------------------------------------------------------------------------
85 Technology - Performance Profile (Intel(R) SST-PP) feature introduces a mechanism
89 performance profile and meet CPU online/offline requirement, the user can expect
91 "perf-profile" when using the Intel Speed Select tool.
99 # intel-speed-select perf-profile get-config-levels
101 Executing on CPU model: X
102 package-0
103 die-0
104 cpu-0
105 get-config-levels:4
106 package-1
107 die-0
108 cpu-14
109 get-config-levels:4
111 On this system under test, there are 4 performance profiles in addition to the
124 # intel-speed-select perf-profile get-lock-status
126 Executing on CPU model: X
127 package-0
128 die-0
129 cpu-0
130 get-lock-status:0
131 package-1
132 die-0
133 cpu-14
134 get-lock-status:0
143 # intel-speed-select perf-profile info -l 0
145 Executing on CPU model: X
146 package-0
147 die-0
148 cpu-0
149 perf-profile-level-0
150 cpu-count:28
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
167 "enable-cpu-mask/enable-cpu-list" at the max can be "online." When that
169 understand more, execute "intel-speed-select perf-profile info" for performance
170 level 4::
172 # intel-speed-select perf-profile info -l 4
174 Executing on CPU model: X
175 package-0
176 die-0
177 cpu-0
178 perf-profile-level-4
179 cpu-count:28
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
198 # intel-speed-select perf-profile get-config-current-level
200 Executing on CPU model: X
201 package-0
202 die-0
203 cpu-0
204 get-config-current_level:0
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
218 # echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo
222 #stress -c 64
226 #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
228 Package Core CPU Bzy_MHz
229 - - 2600
234 0 4 4 2600
241 To the change the performance level to 4, execute::
243 # intel-speed-select -d perf-profile set-config-level -l 4 -o
245 Executing on CPU model: X
246 package-0
247 die-0
248 cpu-0
249 perf-profile
252 In the command above, "-o" is optional. If it is specified, then it will also
258 #cat /sys/devices/system/cpu/cpu0/cpufreq/base_frequency
262 level 0 to 2800 MHz at performance level 4. As a result, any workload, which can
268 It is possible to change SST-PP level using out of band (OOB) agent (Via some
277 a command line option --oob::
279 # intel-speed-select --oob
281 Executing on CPU model:143[0x8f]
288 ---------------------------------------------
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
293 SST-TF)).
295 For example, from the output of "perf-profile info" above, for level 0 and level
296 4:
299 speed-select-turbo-freq:disabled
300 speed-select-base-freq:disabled
302 For level 4::
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
309 This means that at performance level 4, the "speed-select-base-freq" feature is
312 "speed-select-turbo-freq" (Intel(R) SST-TF) is supported at both performance
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
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
328 The user can configure up to 4 class of service configurations. Each CLOS group
330 can be limited and power is distributed. Each CPU core can be tied to a class of
332 at per CPU level.
343 # intel-speed-select core-power enable --help
345 Executing on CPU model: X
346 Enable core-power for a package/die
347 Clos Enable: Specify priority type with [--priority|-p]
352 - Ordered
360 - Proportional
366 weight. This proportional priority can be configured using "core-power config"
371 # intel-speed-select core-power enable
373 Executing on CPU model: X
374 package-0
375 die-0
376 cpu-0
377 core-power
379 package-1
380 die-0
381 cpu-6
382 core-power
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
388 on CPU 0, execute::
390 # intel-speed-select -c 0 core-power info
392 Executing on CPU model: X
393 package-0
394 die-0
395 cpu-0
396 core-power
397 support-status:supported
398 enable-status:enabled
399 clos-enable-status:enabled
400 priority-type:proportional
401 package-1
402 die-0
403 cpu-24
404 core-power
405 support-status:supported
406 enable-status:enabled
407 clos-enable-status:enabled
408 priority-type:proportional
414 desired. These parameters can be configured with "core-power config" command.
416 mandatory. To check core-power config options, execute::
418 # intel-speed-select core-power config --help
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
431 Executing on CPU model: X
437 package-0
438 die-0
439 cpu-0
440 core-power
442 package-1
443 die-0
444 cpu-6
445 core-power
454 To check the current configuration, "core-power get-config" can be used. For
457 # intel-speed-select core-power get-config -c 0
459 Executing on CPU model: X
460 package-0
461 die-0
462 cpu-0
463 core-power
466 clos-proportional-priority:0
467 clos-min:0 MHz
468 clos-max:Max Turbo frequency
469 clos-desired:0 MHz
470 package-1
471 die-0
472 cpu-24
473 core-power
476 clos-proportional-priority:0
477 clos-min:0 MHz
478 clos-max:Max Turbo frequency
479 clos-desired:0 MHz
481 Associating a CPU with a CLOS group
484 To associate a CPU to a CLOS group "core-power assoc" command can be used::
486 # intel-speed-select core-power assoc --help
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
497 Executing on CPU model: X
498 package-0
499 die-0
500 cpu-10
501 core-power
504 Once a CPU is associated, its sibling CPUs are also associated to a CLOS group.
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
513 Executing on CPU model: X
514 package-1
515 die-0
516 cpu-10
517 get-assoc
520 This shows that CPU 10 is part of a CLOS group 3.
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
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
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
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
556 # intel-speed-select -c 0 perf-profile info -l 0
558 Executing on CPU model: X
559 package-0
560 die-0
561 cpu-0
562 perf-profile-level-0
565 speed-select-base-freq:disabled
568 Before enabling Intel(R) SST-BF and measuring its impact on a workload
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
584 To compare, pick a multi-threaded workload where each thread can be scheduled on
586 performance using Intel(R) SST-BF.
591 # taskset -c 3,4 perf bench -r 100 sched pipe
602 #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
603 Package Core CPU Bzy_MHz
608 0 4 4 2600
619 From the above turbostat output, both CPU 3 and 4 are very busy and reaching
622 Intel(R) SST-BF Capabilities
625 To get capabilities of Intel(R) SST-BF for the current performance level 0,
628 # intel-speed-select base-freq info -l 0
630 Executing on CPU model: X
631 package-0
632 die-0
633 cpu-0
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
645 via high-priority-cpu-list/high-priority-cpu-mask. But if this Intel(R) SST-BF
647 high-priority-cpu-list) can only offer up to 2400 MHz. As a result, if this
649 SST-BF feature particularly for the above "sched pipe" workload since only two
653 Enable Intel(R) SST-BF
656 To enable Intel(R) SST-BF feature, execute::
658 # intel-speed-select base-freq enable -a
660 Executing on CPU model: X
661 package-0
662 die-0
663 cpu-0
664 base-freq
666 package-1
667 die-0
668 cpu-14
669 base-freq
672 In this case, -a option is optional. This not only enables Intel(R) SST-BF, but it
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
677 for each CPU.
679 If -a option is not used, then the following steps are required before enabling
680 Intel(R) SST-BF:
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
689 workload to high priority CPUs (CPU 5 and 6 in this case)::
691 #taskset -c 5,6 perf bench -r 100 sched pipe
698 This way, by enabling Intel(R) SST-BF, the performance of this benchmark is
703 #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
704 Package Core CPU Bzy_MHz
709 0 4 4 2175
720 Disable Intel(R) SST-BF
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 --------------------------------------------------------------------
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
747 In the system under test here, Intel(R) SST-TF is supported at the base
750 # intel-speed-select -c 0 perf-profile info -l 0
752 package-0
753 die-0
754 cpu-0
755 perf-profile-level-0
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
772 # intel-speed-select perf-profile info -l 0
774 Executing on CPU model: X
775 package-0
776 die-0
777 cpu-0
778 perf-profile-level-0
781 turbo-ratio-limits-sse
782 bucket-0
783 core-count:2
784 max-turbo-frequency(MHz):3200
785 bucket-1
786 core-count:4
787 max-turbo-frequency(MHz):3100
788 bucket-2
789 core-count:6
790 max-turbo-frequency(MHz):3100
791 bucket-3
792 core-count:8
793 max-turbo-frequency(MHz):3100
794 bucket-4
795 core-count:10
796 max-turbo-frequency(MHz):3100
797 bucket-5
798 core-count:12
799 max-turbo-frequency(MHz):3100
800 bucket-6
801 core-count:14
802 max-turbo-frequency(MHz):3100
803 bucket-7
804 core-count:16
805 max-turbo-frequency(MHz):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
820 #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
821 Package Core CPU Bzy_MHz
826 0 4 4 3000
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
845 To get the capability, the "turbo-freq info" command can be used::
847 # intel-speed-select turbo-freq info -l 0
849 Executing on CPU model: X
850 package-0
851 die-0
852 cpu-0
853 speed-select-turbo-freq
854 bucket-0
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
859 bucket-1
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
864 bucket-2
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
883 Enable Intel(R) SST-TF
886 To enable Intel(R) SST-TF, execute::
888 # intel-speed-select -c 12,13 turbo-freq enable -a
890 Executing on CPU model: X
891 package-0
892 die-0
893 cpu-12
894 turbo-freq
896 package-0
897 die-0
898 cpu-13
899 turbo-freq
901 package--1
902 die-0
903 cpu-63
904 turbo-freq --auto
907 In this case, the option "-a" is optional. If set, it enables Intel(R) SST-TF
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
913 Intel(R) SST-TF:
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…
924 #taskset -c 12,13 perf bench -r 100 sched pipe
932 turbostat output will show that the CPU 12 and CPU 13 are getting 100 MHz boost.
935 #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
936 Package Core CPU Bzy_MHz