How to change CPU clock frequency on individual cores?

It seems like I am only capable of changing the frequency of all the CPU cores at the same time.

For example:

echo “userspace” > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor

echo > /sys/devices/system/cpu/cpu1/cpufreq/scaling_setspeed

will make all CPU cores that are currently on go to that frequency, not just CPU core 1.

Also, it is interesting to note that when setting “userspace” to a a file path such as /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor, it also makes all cores reflect a “userspace” mode, and not just core 1 as shown in the file path. Is this normal? Is there any way to change a single core frequency?

I have been using this wiki for reference:

Can anyone help out? I’m still not able to figure out if this is normal.

Hi aowens,

‘userspace’ power governor means it disables dynamic frequency scaling policy and lets userspace applications control the CPU frequency via sysfs. However, you are right, there is no option to program individual frequency per CPU core. We will try to update wiki to provide more details in this regard. Thanks.

You could also refer to /kernel/Documentation/cpu-freq for standard Linux kernel on power governor and overall sysfs file setting etc.