CPU
The @stk_name@ supports DVFS (dynamic voltage and frequency scaling, by default the governor ondemand
is set.
Governors are power schemes for the CPU. Only one may be active at a time.
Governor | description |
---|---|
performance | Run the CPU at the maximum frequency. |
powersave | Run the CPU at the minimum frequency. |
userspace | Run the CPU at user specified frequencies. |
ondemand | Scales the frequency dynamically according to current load. Jumps to the highest frequency and then possibly back off as the idle time increases. |
conservative | Scales the frequency dynamically according to current load. Scales the frequency more gradually than ondemand. |
schedutil | Scheduler-driven CPU frequency selection |
You can change the actual governor with the following command:
cpufreq-set -g <governor> (e.g. cpufreq-set -g performance)
Disable CPU Core temporarily
At runtime it is possible to disable multiple CPU cores via the Linux sysfs. On a system that has four CPU cores, the maximum of three cores can be disabled.
To disable the a CPU core value 0
must be written to the CPU core specific file /sys/devices/system/cpu/cpu<N>/online
where <N> is the number of the Core, the counting starts at zero.
e.g. disable CPU core 4:
echo 0 > /sys/devices/system/cpu/cpu3/online
To check which CPU core(s) are currently enabled the following command can be used:
grep "processor" /proc/cpuinfo
The CPU core can be enabled again by writing the value 1
to /sys/devices/system/cpu/cpu<N>/online
.
e.g. enable CPU core 4:
echo 1 > /sys/devices/system/cpu/cpu3/online
Set ammount of CPU Cores permanently
It is possible to limit the maximium amount of cores with the the maxcpus=
parameter in the kernel command line. To add the new parameter a new U-boot variable addcpu
has to be created.
setenv addcpu maxcpus=${cpu_num}
The amount of cores is set by the cpu_num
variable, for example if cpu num is set to 2
only two cores will be started.
setenv cpu_num 2