|
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