|
1 | 1 | #!/bin/bash -e |
2 | 2 |
|
3 | | -# let's disable threads on different cores |
4 | | -cpu0=$(cat /sys/devices/system/cpu/cpu0/topology/core_id) |
5 | | -cpu1=$(cat /sys/devices/system/cpu/cpu1/topology/core_id) |
6 | | -cpu2=$(cat /sys/devices/system/cpu/cpu2/topology/core_id) |
7 | | -cpu3=$(cat /sys/devices/system/cpu/cpu3/topology/core_id) |
8 | | - |
9 | 3 | # set governor to performance |
10 | | -echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor |
11 | | -echo performance > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor |
12 | | -echo performance > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor |
13 | | -echo performance > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor |
| 4 | +for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do |
| 5 | + echo performance > $i |
| 6 | +done |
14 | 7 |
|
15 | 8 | # do not allow changes later on |
16 | 9 | chmod -w /sys/devices/system/cpu/cpu?/cpufreq/scaling_governor |
17 | 10 |
|
18 | | -# disable last thread |
19 | | -echo 0 > /sys/devices/system/cpu/cpu3/online |
20 | | - |
21 | | -# disable thread with different core id |
22 | | -if [ $cpu3 -ne $cpu2 ]; then |
23 | | - echo 0 > /sys/devices/system/cpu/cpu2/online |
24 | | -elif [ $cpu3 -ne $cpu1 ]; then |
25 | | - echo 0 > /sys/devices/system/cpu/cpu1/online |
26 | | -elif [ $cpu3 -ne $cpu0 ]; then |
27 | | - echo 0 > /sys/devices/system/cpu/cpu0/online |
28 | | -else |
29 | | - # found no thread with different core id |
30 | | - exit -1 |
31 | | -fi |
32 | | - |
| 11 | +# disable all but on thread on each core |
| 12 | +declare -A core_ids |
| 13 | +for i in /sys/devices/system/cpu/cpu?/topology/core_id; do |
| 14 | + core_id=$(cat $i) |
| 15 | + if [[ ${core_ids[$core_id]} ]]; then |
| 16 | + echo 0 > $(dirname $i)/../online |
| 17 | + else |
| 18 | + core_ids[$core_id]=1 |
| 19 | + fi |
| 20 | +done |
33 | 21 |
|
34 | 22 | # now disable turbo boost |
35 | 23 | echo -n 1 > /sys/devices/system/cpu/intel_pstate/no_turbo |
|
0 commit comments