blob: 9779429656518872abbd98b98e3628cb8e964c2b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#!/bin/sh
set -eu
case $1 in
on)
for f in "/sys/devices/system/cpu/cpu"[0-9]*/online; do
echo 1 > "$f"
done
;;
off)
cores=""
for cpu in "/sys/devices/system/cpu/cpu"[0-9]* ; do
if grep -vq '^1$' "$cpu/online" 2>/dev/null; then
continue
fi
coreid=$(cat "$cpu/topology/core_id")
if echo "$cores" | grep -- "$coreid" ; then
echo 0 > "$cpu/online"
fi
cores=$(printf "$cores\n$coreid")
done
;;
*) echo "USAGE: hyperthreading.sh <on|off>"
esac
|