LINUX.ORG.RU

Ограничение множителя Turbo Boost на процессоре Ivy Bridge

 ,


2

2

Есть Thinkpad X230 с процессором i7-3615QE.
Проблема в том, что по дефолту процессор слишком горячий (турбо буст 3.1 ГГц на всех ядрах).

Под виндой есть программа ThrottleStop, в которой можно ограничить множитель турбо буста. Просто стрелочкой задаёшь, и оно работает, в нагрузке «стресс-тест AIDA64» частота начинает подниматься только до заданного значения (и температура уменьшается).

А как сделать такое же в линуксе?
Есть информация, что эти множители задаются регистром MSR 0x1AD.
Вот какая-то заметка, где описано, как оно должно работать (хотя там процессор не ivy bridge)
Тем не менее, оно не работает (или я что-то делаю не так)

# modprobe msr
# rdmsr 0x1AD
1f1f2021
Здесь вроде логично: одно ядро 3.3ГГц, два ядра 3.2ГГц, все ядра 3.1ГГц.
Пробую задать 2.9 везде:
# wrmsr 0x1AD 0x1c1c1c1c
wrmsr: CPU 0 cannot set MSR 0x000001ad to 0x000000001d1d1d

Добавлю, что под виндой ThrottleStop работает на официальной прошивке lenovo (без патчей).
Также пробовался coreboot (payload seabios), на нём винда не запустилась (возможно, надо было переустановить), в линуксе та же ошибка.

Если у тебя intel_pstate используется, то просто ограничь max_perf_pct:

echo 95 > /sys/devices/system/cpu/intel_pstate/max_perf_pct

При включенном Turbo Boost, 100 - это максимальное значение с Turbo Boost (то есть в твоем случае 3.3 GHz). Соответственно, это равноценно ограничению частоты Turbo Boost.

Однако если опустишься ниже определенного значения, тогда уже это повлияет на максимальную частоту даже без Turbo Boost. В твоем случае диапазон Turbo Boost - это 70-100 (2300/3300*100=70).

По крайней мере, у меня на Bay Trail это так работает.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 1)
Ответ на: комментарий от Kron4ek

Да, работает. Только видимо, проценты берутся от 3.3 ГГц (макс. частота на одно ядро), и округляется в большую сторону до 100 МГц.
Если пишу 88, то частота 3.0, а 87 как раз 2.9
Круто, спасибо!

TheAnonymous ★★★★★
() автор топика

Есть Thinkpad X230

Там и cpupower frequency-set -u работает

Kuzz ★★★
()

Видимо, задать множитель через этот MSR таки нельзя
https://software.intel.com/content/dam/develop/external/us/en/documents-tps/3...

MSR_TURBO_RATIO_LIMIT
RO if MSR_PLATFORM_INFO.[28] = 0.

А в MSR_PLATFORM_INFO (0xCE) 28-й бит у меня ноль.

Но ещё есть настройка TDP (регистр 0x610), и она вроде не заблокирована. В 0x606 младшие биты 0011, получается единицы измерения 1/2^3 (1/8) вт.
Изначально в 0x610 в младших 15 битах 168h=360=45вт, что совпадает с номинальным TDP процессора.
Я записываю на эти позиции, например, 0a0h (20вт), оно записывается (rdmsr читает новое значение), но в нагрузке процессор разгоняется до тех же 3.1 ггц на все ядра.
А как тогда должны работать эти лимиты TDP?

TheAnonymous ★★★★★
() автор топика
Последнее исправление: TheAnonymous (всего исправлений: 1)
Ответ на: комментарий от TheAnonymous

все msr что ты крутишь есть в /sys

anonymous
()

sudo apt install cpufrequtils

touch /etc/default/cpufrequtils

cat /etc/default/cpufrequtils

GOVERNOR="ondemand"
MAX_SPEED="1.2GHz"
cat /proc/cpuinfo
model name	: Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz

На i5 8300H тоже работает. Дистрибутив ubuntu lts

Aspid
()
Ответ на: комментарий от Aspid

Частоту можешь выставить любую поддерживаемую твои процессором. Множитель установится автоматически.

Aspid
()
Ответ на: комментарий от TheAnonymous

с intel_pstate работает?

Работает.

это только для generic-acpi драйвера, или в интеловом теперь тоже?

sudo cpupower frequency-info

analyzing CPU 0:
  driver: intel_cpufreq
Aspid
()
Ответ на: комментарий от anonymous

Анон. У меня два ноутбука. Один на 3110m второй на i5 8300H. Все работает. Залогинься.

Aspid
()
Ответ на: комментарий от anonymous

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

ondemand
ondemand
ondemand
ondemand

cat /proc/cpuinfo

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 58
model name	: Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz
stepping	: 9
microcode	: 0x21
cpu MHz		: 1197.264

Смотри последнюю строку.

Aspid
()
Ответ на: комментарий от TheAnonymous

intel_pstate и intel_cpufreq это одно и то же?

Разное. На втором ноутбуке стоит i5-8300h. Там подгружается драйвер intel_pstate. Если процессор не ограничить в частоте, он разгоняется до 4Ггц… Разгоняется, греется, и кулер начинает выть. Воет, как реактивный двигатель.

Поэтому я ограничиваю ему частоту до 1,8Ггц. Тем методом, что описал вам выше.

Aspid
()
Последнее исправление: Aspid (всего исправлений: 1)
Ответ на: комментарий от anonymous

Анон. Смотри. Специально для тебя. Все доказательства:

https://ibb.co/qJhytBY

Драйвер: intel_pstate. Доступных режимов работы процессора два, сберегающий и производительный. В любом из этих режимов, процессор разгоняется до 4ГГц и соответственно перегревается, шумит.

Используя метод описанный выше, удалось регулировать частоту процессора как надо. На скриншоте частота зафиксирована уровнем 0.9Ггц. Процессор не греется. Вентиль не шумит.

Но ты анон, продолжаешь возражать :-). Так вот, я говорю хватит!

Aspid
()
Ответ на: комментарий от Aspid

он тебе всё правильно говорит. у тебя применяется только MAX_SPEED=«1.2GHz», а говернор игнорируется

anonymous
()
Ответ на: комментарий от anonymous

всё правильно говорит. у тебя применяется только MAX_SPEED=«1.2GHz», а говернор игнорируется

Процессор не греется? Вентилятор не шумит? Задача выполнена? Да. Что еще нужно? Повыступать? Выступать не нужно :-).

Aspid
()
Ответ на: комментарий от Aspid

если ты другим что-то советуешь, то потрудись делать это корректно. ну или не удивляйся потом, что тебе самому посоветуют, скорректировав

anonymous
()
Ответ на: комментарий от anonymous

не удивляйся потом, что тебе самому посоветуют

Мне советовать не нужно. У меня работает. На холостом ходу 0,8Ггц. При нагрузке 1,8Ггц. Ничего не греется. Ничего не шумит. Работает как часы. Один раз настроил и забыл. Настроил, как описано выше.

А ты анон не прав. Ты НЕ настроил, но выступаешь ;-).

Aspid
()
Последнее исправление: Aspid (всего исправлений: 1)
Ответ на: комментарий от Aspid

пруфы будут, что я себе не настроил? впрочем, можешь не отвечать, лучше иди кислородом подыши, тебе нужно

anonymous
()
Ответ на: комментарий от anonymous

В новых ядрах (5.8+, если не ошибаюсь) pstate автоматически переключается в режим passive на старых (старее Skylake) процах Intel.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 1)

Спасибо за тему. Может, когда-нибудь пропишу ограничения для своего x230. Или вообще сделаю конфиг: тихонько - орать.

EmgrtE ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.