cpufreq-info врёт
/sys/devices/system/cpu/cpu?/cpufreq/cpuinfo_cur_freq показывает неверную частоту
Обратил внимание, что при задании частоты нулевому ядру, cpufreq-info показывает одинаковую частоту для всех ядер. Меня это удивило, так как раньше я мог задавать разные частоты для каждого ядра. Решил проверить экспериментально.
for i in 0 1 2 3; do cpufreq-set -c $i -g userspace; done
# Устанавливаем частоту ядер в 3 ГГц
for i in 0 1 2 3; do cpufreq-set -c $i -f 3GHz; done
# Проверяем
cpufreq-info | grep "current CPU frequency"
# current CPU frequency is 3.00 GHz (asserted by call to hardware).
# current CPU frequency is 3.00 GHz (asserted by call to hardware).
# current CPU frequency is 3.00 GHz (asserted by call to hardware).
# current CPU frequency is 3.00 GHz (asserted by call to hardware).
# Устанавливаем частоту нулевого ядра в 800 МГц
cpufreq-set -c 0 -f 800MHz
# Проверяем
cpufreq-info | grep "current CPU frequency"
# current CPU frequency is 800 MHz (asserted by call to hardware).
# current CPU frequency is 800 MHz (asserted by call to hardware).
# current CPU frequency is 800 MHz (asserted by call to hardware).
# current CPU frequency is 800 MHz (asserted by call to hardware).
# Проверяем другим способом
cat /sys/devices/system/cpu/cpu?/cpufreq/cpuinfo_cur_freq
# 800000
# 800000
# 800000
# 800000
# При этом:
cat /sys/devices/system/cpu/cpu?/cpufreq/scaling_cur_freq
# 800000
# 3000000
# 3000000
# 3000000
Видим, что cpufreq-info показывает те же частоту, что и /sys/devices/system/cpu/cpu?/cpufreq/cpuinfo_cur_freq, но они отличается от указанных в /sys/devices/system/cpu/cpu?/cpufreq/scaling_cur_freq. Какая-то черепашка врёт.
Проверим. Я написал тестовую программу, которая считает хэш SHA-1 от полугибибайтного блока памяти. Я запустил эту программу на нулевом и первом ядре, а затем сравнил время работы.
1.866983
$ taskset -c 1 ./sha-test
0.491562
На нулевом ядре, скорость которого почти в четыре раза меньше скорости первого, программа выполнялась почти в четыре раза дольше. Что говорит о том, что cpuinfo_cur_freq верить в данном случае нельзя.
UPD: проверялось на текущей версии Karmic Koala.
Автор: Vladimir; опубликовано в: Linux; метки: cpufrequtils, Karmic Koala, LinuxАвг
2009
Комментарии к статье «cpufreq-info врёт» »
Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.
Оставить комментарий к записи «cpufreq-info врёт»
गते गते पारगते पारसंगते बोधि स्वाहा
Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.

