Lines Matching +full:on +full:- +full:die
1 .. SPDX-License-Identifier: GPL-2.0
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
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
59 ------------------------------
62 #intel-speed-select --info
64 For example on a test system::
66 # intel-speed-select --info
68 Executing on CPU model: X
73 Intel(R) SST-PP (feature perf-profile) is supported
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
85 Technology - Performance Profile (Intel(R) SST-PP) feature introduces a mechanism
91 "perf-profile" when using the Intel Speed Select tool.
96 There can be multiple performance profiles on a system. To get the number of
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
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
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
220 Then runs a busy workload on all CPUs, for example::
222 #stress -c 64
226 #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
229 - - 2600
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
266 ---------------------------------------------
269 other two Intel(R) SST features (Intel(R) Speed Select Technology - Base Frequency
270 (Intel(R) SST-BF) and Intel(R) Speed Select Technology - Turbo Frequency (Intel
271 SST-TF)).
273 For example, from the output of "perf-profile info" above, for level 0 and level
277 speed-select-turbo-freq:disabled
278 speed-select-base-freq:disabled
281 speed-select-turbo-freq:disabled
282 speed-select-base-freq:unsupported
284 Given these results, the "speed-select-base-freq" (Intel(R) SST-BF) in level 4
287 This means that at performance level 4, the "speed-select-base-freq" feature is
290 "speed-select-turbo-freq" (Intel(R) SST-TF) is supported at both performance
293 The Intel(R) SST-BF and the Intel(R) SST-TF features are built on a foundation
294 technology called Intel(R) Speed Select Technology - Core Power (Intel(R) SST-CP).
295 The platform firmware enables this feature when Intel(R) SST-BF or Intel(R) SST-TF
296 is supported on a platform.
298 Intel(R) Speed Select Technology Core Power (Intel(R) SST-CP)
299 ---------------------------------------------------------------
301 Intel(R) Speed Select Technology Core Power (Intel(R) SST-CP) is an interface that
321 # intel-speed-select core-power enable --help
323 Executing on CPU model: X
324 Enable core-power for a package/die
325 Clos Enable: Specify priority type with [--priority|-p]
330 - Ordered
332 Priority for ordered throttling is defined based on the index of the assigned
338 - Proportional
344 weight. This proportional priority can be configured using "core-power config"
349 # intel-speed-select core-power enable
351 Executing on CPU model: X
352 package-0
353 die-0
354 cpu-0
355 core-power
357 package-1
358 die-0
359 cpu-6
360 core-power
363 The scope of this enable is per package or die scoped when a package contains
364 multiple dies. To check if CLOS is enabled and get priority type, "core-power
365 info" command can be used. For example to check the status of core-power feature
366 on CPU 0, execute::
368 # intel-speed-select -c 0 core-power info
370 Executing on CPU model: X
371 package-0
372 die-0
373 cpu-0
374 core-power
375 support-status:supported
376 enable-status:enabled
377 clos-enable-status:enabled
378 priority-type:proportional
379 package-1
380 die-0
381 cpu-24
382 core-power
383 support-status:supported
384 enable-status:enabled
385 clos-enable-status:enabled
386 priority-type:proportional
392 desired. These parameters can be configured with "core-power config" command.
394 mandatory. To check core-power config options, execute::
396 # intel-speed-select core-power config --help
398 Executing on CPU model: X
399 Set core-power configuration for one of the four clos ids
400 Specify targeted clos id with [--clos|-c]
401 Specify clos Proportional Priority [--weight|-w]
402 Specify clos min in MHz with [--min|-n]
403 Specify clos max in MHz with [--max|-m]
407 # intel-speed-select core-power config -c 0
409 Executing on CPU model: X
415 package-0
416 die-0
417 cpu-0
418 core-power
420 package-1
421 die-0
422 cpu-6
423 core-power
432 To check the current configuration, "core-power get-config" can be used. For
435 # intel-speed-select core-power get-config -c 0
437 Executing on CPU model: X
438 package-0
439 die-0
440 cpu-0
441 core-power
444 clos-proportional-priority:0
445 clos-min:0 MHz
446 clos-max:Max Turbo frequency
447 clos-desired:0 MHz
448 package-1
449 die-0
450 cpu-24
451 core-power
454 clos-proportional-priority:0
455 clos-min:0 MHz
456 clos-max:Max Turbo frequency
457 clos-desired:0 MHz
462 To associate a CPU to a CLOS group "core-power assoc" command can be used::
464 # intel-speed-select core-power assoc --help
466 Executing on CPU model: X
468 Specify targeted clos id with [--clos|-c]
473 # intel-speed-select -c 10 core-power assoc -c 3
475 Executing on CPU model: X
476 package-0
477 die-0
478 cpu-10
479 core-power
486 To check the existing association for a CPU, "core-power get-assoc" command can
489 # intel-speed-select -c 10 core-power get-assoc
491 Executing on CPU model: X
492 package-1
493 die-0
494 cpu-10
495 get-assoc
506 # intel-speed-select core-power disable
508 Some features like Intel(R) SST-TF can only be enabled when CLOS based prioritization
509 is enabled. For this reason, disabling while Intel(R) SST-TF is enabled can cause
510 Intel(R) SST-TF to fail. This will cause the "disable" command to display an error
511 if Intel(R) SST-TF is already enabled. In turn, to disable, the Intel(R) SST-TF
514 Intel(R) Speed Select Technology - Base Frequency (Intel(R) SST-BF)
515 -------------------------------------------------------------------
517 The Intel(R) Speed Select Technology - Base Frequency (Intel(R) SST-BF) feature lets
520 the thread at higher base frequency on specific sets of CPUs (high priority
521 CPUs) at the cost of lower base frequency (low priority CPUs) on other CPUs.
524 The support of Intel(R) SST-BF depends on the Intel(R) Speed Select Technology -
525 Performance Profile (Intel(R) SST-PP) performance level configuration. It is
526 possible that only certain performance levels support Intel(R) SST-BF. It is also
528 SST-BF. Consequently, first select the desired performance level to enable this
531 In the system under test here, Intel(R) SST-BF is supported at the base
534 # intel-speed-select -c 0 perf-profile info -l 0
536 Executing on CPU model: X
537 package-0
538 die-0
539 cpu-0
540 perf-profile-level-0
543 speed-select-base-freq:disabled
546 Before enabling Intel(R) SST-BF and measuring its impact on a workload
555 Based on the output of the "intel-speed-select perf-profile info -l 0" base
562 To compare, pick a multi-threaded workload where each thread can be scheduled on
563 separate CPUs. "Hackbench pipe" test is a good example on how to improve
564 performance using Intel(R) SST-BF.
569 # taskset -c 3,4 perf bench -r 100 sched pipe
580 #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
600 Intel(R) SST-BF Capabilities
603 To get capabilities of Intel(R) SST-BF for the current performance level 0,
606 # intel-speed-select base-freq info -l 0
608 Executing on CPU model: X
609 package-0
610 die-0
611 cpu-0
612 speed-select-base-freq
613 high-priority-base-frequency(MHz):3000
614 high-priority-cpu-mask:00000216,00002160
615 high-priority-cpu-list:5,6,8,13,33,34,36,41
616 low-priority-base-frequency(MHz):2400
617 tjunction-temperature(C):125
618 thermal-design-power(W):205
620 The above capabilities show that there are some CPUs on this system that can
623 via high-priority-cpu-list/high-priority-cpu-mask. But if this Intel(R) SST-BF
625 high-priority-cpu-list) can only offer up to 2400 MHz. As a result, if this
627 SST-BF feature particularly for the above "sched pipe" workload since only two
628 CPUs are used, they can be scheduled on high priority CPUs and can get boost of
631 Enable Intel(R) SST-BF
634 To enable Intel(R) SST-BF feature, execute::
636 # intel-speed-select base-freq enable -a
638 Executing on CPU model: X
639 package-0
640 die-0
641 cpu-0
642 base-freq
644 package-1
645 die-0
646 cpu-14
647 base-freq
650 In this case, -a option is optional. This not only enables Intel(R) SST-BF, but it
652 Power (Intel(R) SST-CP) features. This option sets the minimum performance of each
653 Intel(R) Speed Select Technology - Performance Profile (Intel(R) SST-PP) class to
657 If -a option is not used, then the following steps are required before enabling
658 Intel(R) SST-BF:
660 - Discover Intel(R) SST-BF and note low and high priority base frequency
661 - Note the high prioity CPU list
662 - Enable CLOS using core-power feature set
663 - Configure CLOS parameters. Use CLOS.min to set to minimum performance
664 - Subscribe desired CPUs to CLOS groups
669 #taskset -c 5,6 perf bench -r 100 sched pipe
676 This way, by enabling Intel(R) SST-BF, the performance of this benchmark is
681 #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
698 Disable Intel(R) SST-BF
701 To disable the Intel(R) SST-BF feature, execute::
703 # intel-speed-select base-freq disable -a
706 Intel(R) Speed Select Technology - Turbo Frequency (Intel(R) SST-TF)
707 --------------------------------------------------------------------
710 to cores based on the priority. By using this feature, some cores can be
712 the cost of lower or no turbo frequency on the low priority cores.
715 CPUs, but the user wants some configurable option to get high performance on
718 The support of Intel(R) Speed Select Technology - Turbo Frequency (Intel(R) SST-TF)
719 depends on the Intel(R) Speed Select Technology - Performance Profile (Intel
720 SST-PP) performance level configuration. It is possible that only a certain
721 performance level supports Intel(R) SST-TF. It is also possible that only the base
722 performance level (level = 0) has the support of Intel(R) SST-TF. Hence, first
725 In the system under test here, Intel(R) SST-TF is supported at the base
728 # intel-speed-select -c 0 perf-profile info -l 0
730 package-0
731 die-0
732 cpu-0
733 perf-profile-level-0
736 speed-select-turbo-freq:disabled
741 To check if performance can be improved using Intel(R) SST-TF feature, get the turbo
742 frequency properties with Intel(R) SST-TF enabled and compare to the base turbo
750 # intel-speed-select perf-profile info -l 0
752 Executing on CPU model: X
753 package-0
754 die-0
755 cpu-0
756 perf-profile-level-0
759 turbo-ratio-limits-sse
760 bucket-0
761 core-count:2
762 max-turbo-frequency(MHz):3200
763 bucket-1
764 core-count:4
765 max-turbo-frequency(MHz):3100
766 bucket-2
767 core-count:6
768 max-turbo-frequency(MHz):3100
769 bucket-3
770 core-count:8
771 max-turbo-frequency(MHz):3100
772 bucket-4
773 core-count:10
774 max-turbo-frequency(MHz):3100
775 bucket-5
776 core-count:12
777 max-turbo-frequency(MHz):3100
778 bucket-6
779 core-count:14
780 max-turbo-frequency(MHz):3100
781 bucket-7
782 core-count:16
783 max-turbo-frequency(MHz):3100
785 Based on the data above, when all the CPUS are busy, the max. frequency of 3100
786 MHz can be achieved. If there is some busy workload on cpu 0 - 11 (e.g. stress)
787 and on CPU 12 and 13, execute "hackbench pipe" workload::
789 # taskset -c 12,13 perf bench -r 100 sched pipe
798 #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1
815 Based on turbostat output, the performance is limited by frequency cap of 3100
817 13, first check the capability of the Intel(R) SST-TF feature for this performance
820 Get Intel(R) SST-TF Capability
823 To get the capability, the "turbo-freq info" command can be used::
825 # intel-speed-select turbo-freq info -l 0
827 Executing on CPU model: X
828 package-0
829 die-0
830 cpu-0
831 speed-select-turbo-freq
832 bucket-0
833 high-priority-cores-count:2
834 high-priority-max-frequency(MHz):3200
835 high-priority-max-avx2-frequency(MHz):3200
836 high-priority-max-avx512-frequency(MHz):3100
837 bucket-1
838 high-priority-cores-count:4
839 high-priority-max-frequency(MHz):3100
840 high-priority-max-avx2-frequency(MHz):3000
841 high-priority-max-avx512-frequency(MHz):2900
842 bucket-2
843 high-priority-cores-count:6
844 high-priority-max-frequency(MHz):3100
845 high-priority-max-avx2-frequency(MHz):3000
846 high-priority-max-avx512-frequency(MHz):2900
847 speed-select-turbo-freq-clip-frequencies
848 low-priority-max-frequency(MHz):2600
849 low-priority-max-avx2-frequency(MHz):2400
850 low-priority-max-avx512-frequency(MHz):2100
852 Based on the output above, there is an Intel(R) SST-TF bucket for which there are
854 turbo frequency on those cores can be increased to 3200 MHz. This is 100 MHz
861 Enable Intel(R) SST-TF
864 To enable Intel(R) SST-TF, execute::
866 # intel-speed-select -c 12,13 turbo-freq enable -a
868 Executing on CPU model: X
869 package-0
870 die-0
871 cpu-12
872 turbo-freq
874 package-0
875 die-0
876 cpu-13
877 turbo-freq
879 package--1
880 die-0
881 cpu-63
882 turbo-freq --auto
885 In this case, the option "-a" is optional. If set, it enables Intel(R) SST-TF
887 Select Technology Core Power (Intel(R) SST-CP) features. The CPU numbers passed
888 with "-c" arguments are marked as high priority, including its siblings.
890 If -a option is not used, then the following steps are required before enabling
891 Intel(R) SST-TF:
893 - Discover Intel(R) SST-TF and note buckets of high priority cores and maximum frequency
895 - Enable CLOS using core-power feature set - Configure CLOS parameters
897 - Subscribe desired CPUs to CLOS groups making sure that high priority cores are set to the maximum…
899 If the same hackbench workload is executed, schedule hackbench threads on high
902 #taskset -c 12,13 perf bench -r 100 sched pipe
909 This improved performance by around 3.3% improvement on a busy system. Here the
913 #turbostat -c 0-13 --show Package,Core,CPU,Bzy_MHz -i 1