LINUX.ORG.RU

cpu frequency policy


0

0

Доброго времени суток. Проблема слудующая. Есть процессор Intel Core2 Duo P8400 2.26 ГГц. Для контроля частоты использую cpufreqd. Из энергосберегающих пакетов стоит laptop-mode-tools (модуль управления частотой процессора отключен) и pm-tools. Проблема заключается в том, что когда проц простаивает или изредка нагружается до максимума, то частота меняется правильно, в нужном диапазоне (там 3 варианта: 800 1600 2260 МГц), но когда начинаю собирать что-то большое, например emerge -uDN world, то сначала частота становится 2.27 Ггц, но через короткое время падает до 1.6 и выше не поднимается. Есть мысли что это автоматика на аппаратном уровне блокирует максимальную частоту чтобы сильно не перегревался. Температура в среднем при компиляции 85 градусов (при простое 55-60). Так вот вопрос в том, действительно ли это аппаратно происходит, или это что-то у меня криво настроено? Конфиг cpufreqd:

[General]
pidfile=/var/run/cpufreqd.pid
poll_interval=2
verbosity=5
[/General]

[Profile]
name=ondemand
minfreq=0%
maxfreq=100%
policy=ondemand
[/Profile]

[Profile]
name=ondemand_lo
minfreq=0%
maxfreq=66%
policy=ondemand
[/Profile]

[Profile]
name=conservative
minfreq=0%
maxfreq=100%
policy=conservative
[/Profile]

[Profile]
name=powersave
minfreq=0%
maxfreq=66%
policy=powersave
[/Profile]

[Profile]
name=performance
minfreq=66%
maxfreq=100%
policy=performance
[/Profile]

[Rule]
name=battery
ac=off
profile=conservative
[/Rule]

[Rule]
name=battery_low
ac=off
battery_interval=0-15
profile=powersave
[/Rule]

[Rule]
name=battery_load
ac=off
battery_interval=40-100
cpu_interval=ANY:70-100
profile=performance
[/Rule]

[Rule]
name=ac
ac=on
profile=ondemand
[/Rule]

[Rule]
name=high_load
ac=on
cpu_interval=ANY:70-100
profile=performance
[/Rule]

[Rule]
name=overheat
acpi_temperature=90-100
cpu_interval=ANY:0-100
profile=ondemand_lo
[/Rule]

Причем что с последними правилами на температуру, что без них, поведение не меняется. Да и температура выше 85 не поднимается. В биосе включен Speed Step. Включение\выключение в биосе опции CPU powersave не влияет никак на поведение.


Поменяй термопасту для начала.

post-factum ★★★★★
()
Ответ на: комментарий от Dhoine

Откуда температура не знаю, термопасту менять не буду, не хочу ноут разбирать. Что интересно, когда я его только включаю, температура сразу 55 градусов, ноут холодный. Может ACPI глючит? Я не уверен, нужно ли lm_sensors ставить, или можно верить показаниям ACPI.

biggun
() автор топика
Ответ на: комментарий от justuser

Надо попробовать... Или попробовать вообще удалить cpufreqd и посмотреть будет ли падать частота. Завтра попробую, отпишусь. Вот что говорит cpufreq-info во время компиляции (температура 85-88):

cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 800 MHz - 2.27 GHz
  available frequency steps: 2.27 GHz, 2.27 GHz, 1.60 GHz, 800 MHz
  available cpufreq governors: conservative, ondemand, powersave, userspace, performance
  current policy: frequency should be within 1.60 GHz and 1.60 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 1.60 GHz.
analyzing CPU 1:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1
  CPUs which need to have their frequency coordinated by software: 1
  maximum transition latency: 10.0 us.
  hardware limits: 800 MHz - 2.27 GHz
  available frequency steps: 2.27 GHz, 2.27 GHz, 1.60 GHz, 800 MHz
  available cpufreq governors: conservative, ondemand, powersave, userspace, performance
  current policy: frequency should be within 1.60 GHz and 1.60 GHz.
Т.е. что-то меняет политику с 800-2.27 на 800-1.6. И это с учетем того, что governor активен performance.

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

С выключенным cpufreqd тот же эффект. При компиляции и нагреве падает верхний предел частоты. Все больше склоняюсь к тому, что это аппаратное средство защиты от перегрева.

biggun
() автор топика
Ответ на: комментарий от kraftello

А какие у него преимущества перед cpufreqd?

biggun
() автор топика
Ответ на: комментарий от megabaks

Т.е. мне стоит разобрать ноут и потерять гарантию, что-бы поменять пасту? Звучит заманчиво :) Никогда до этого ноут не разбирал... тока mini PCI-e wi-fi карту менял, но к ней доступ простой. А вот к процессору наверняка надо будет все раскручивать...

biggun
() автор топика

Тред не читал.
1. Поставь conservative governor (ну или собери себе с interactive).
2. Собери ядро с CONFIG_INTEL_IDLE

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

1. conservetive governor есть, но при любом governor максимальная частота при повышении температуры становится 1.6. На сколько я понимаю, conservative и ondemand governor'ы почти одно и то-же, но conservative лучше при работе от батареи, а ondemand от сети.

Что значит собрать с interactive?

2. Эта опция включена.

biggun
() автор топика
Ответ на: комментарий от devl547

Интересно. Но не думаю что поможет. Даже с performance governor'ом при нагреве максимальная частота падает с 2.27 до 1.6.

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

Покрути тогда Linux-PHC (программный undervolt), заметно помогает.
А вообще, огласи модель ноута. Да и похоже термопасту надо поменять.

devl547 ★★★★★
()
Ответ на: комментарий от biggun

Хотя если посмотреть этот пост http://www.linux.org.ru/jump-message.jsp?msgid=5321140&cid=5321239, то можно увидеть, что

hardware limits: 800 MHz - 2.27 GHz
но при этом:
current policy: frequency should be within 1.60 GHz and 1.60 GHz. 
                  The governor "performance" may decide which speed to use 
                  within this range.
И в тот момент активным было это правило:
[Profile] 
name=performance 
minfreq=66% 
maxfreq=100% 
policy=performance 
[/Profile]

[Rule] 
name=high_load 
ac=on 
cpu_interval=ANY:70-100 
profile=performance 
[/Rule]
Т.е. по идее ожидались лимиты 1.6 - 2.27 ГГц. Исходя из этого можно преположить, что верхний предел частоты (а конкретно множитель) блокируется аппаратно при повышении температуры до критического уровня (судя по всему 85 градусов).

P.S. Сейчас вообще не использую правила с performance governor, т.к. при нагрузке проца governor ondemand справляется не хуже.

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