You are not logged in.

#1 2017-03-29 00:33:59

quequotion
Member
From: Oita, Japan
Registered: 2013-07-29
Posts: 813
Website

[nevermind] Can't set scaling governor for hyperthreads

I got these errors from throttle:

# throttle gov powersave
/usr/local/sbin/throttle: line 180: printf: write error: Invalid argument
/usr/local/sbin/throttle: line 180: printf: write error: Invalid argument
/usr/local/sbin/throttle: line 180: printf: write error: Invalid argument
/usr/local/sbin/throttle: line 180: printf: write error: Invalid argument

It looks like this problem, but it is particular to hyperthreads.

My cpu is an Intel Core i7 2600k; it has four cores and can enable four hyperthreads.

All of the cores and hyperthreads show two governors available:

# cat /sys/bus/cpu/drivers/processor/cpu*/cpufreq/scaling_available_governors
performance powersave
performance powersave
performance powersave
performance powersave
performance powersave
performance powersave
performance powersave
performance powersave

Trying to set the governor for a hyperthread produces this error:

# echo performance > /sys/bus/cpu/drivers/processor/cpu7/cpufreq/scaling_governor
bash: echo: write error: Invalid argument

However, setting the governor for a normal cpu is fine:

# echo performance > /sys/bus/cpu/drivers/processor/cpu0/cpufreq/scaling_governor

# cat /sys/bus/cpu/drivers/processor/cpu*/cpufreq/scaling_governor
performance
powersave
powersave
powersave
powersave
powersave
powersave
powersave

All of the sysfs entries have the same permissions:

# ls -la /sys/bus/cpu/drivers/processor/cpu*/cpufreq/scaling_governor
-rw-r--r-- 1 root root 4096  3月 29 09:18 /sys/bus/cpu/drivers/processor/cpu0/cpufreq/scaling_governor
-rw-r--r-- 1 root root 4096  3月 29 09:12 /sys/bus/cpu/drivers/processor/cpu1/cpufreq/scaling_governor
-rw-r--r-- 1 root root 4096  3月 29 09:12 /sys/bus/cpu/drivers/processor/cpu2/cpufreq/scaling_governor
-rw-r--r-- 1 root root 4096  3月 29 09:12 /sys/bus/cpu/drivers/processor/cpu3/cpufreq/scaling_governor
-rw-r--r-- 1 root root 4096  3月 29 09:12 /sys/bus/cpu/drivers/processor/cpu4/cpufreq/scaling_governor
-rw-r--r-- 1 root root 4096  3月 29 09:12 /sys/bus/cpu/drivers/processor/cpu5/cpufreq/scaling_governor
-rw-r--r-- 1 root root 4096  3月 29 09:12 /sys/bus/cpu/drivers/processor/cpu6/cpufreq/scaling_governor
-rw-r--r-- 1 root root 4096  3月 29 09:15 /sys/bus/cpu/drivers/processor/cpu7/cpufreq/scaling_governor

I'm considering the possibility that hyperthreads might not need their own governor and could be controlled by the cpu's governor, but that's not how this worked in the past (not really sure which kernel version this started, just noticed it today).

I'm currently using the linux kernel 4.10.2-pf. Anyone else have this problem? / Is this actually a problem?

EDIT: Nevermind; stopped happening for no reason at all. Well, not quite no reason; the reason this happens seems to be the timing of setting the governor vs the timing of hyperthreads  coming on; we have to wait a while for them.

Last edited by quequotion (2017-04-05 20:12:08)

Offline

Board footer

Powered by FluxBB