LINUX.ORG.RU

Intel Core i7 3520M на домашнем ноутбуке lenovo z580 ошибка частоты

 , , , ,


0

2

Добрый день.
Ubuntu 16.04 + графическое окружение kde5 из ppa kubuntu backports.
Ноутбук lenovo z580, процессор Intel Core i7 3520M.
Была недовно следующая проблема.
На загруженной системе частота процессора(можно смотреть так: cat /proc/cpuinfo) была всех ядрах примерно 800MHz и не повышалась под нагрузкой(при запуске тяжелых приложений или при компиляции проектов), при этом все в системе работало, но ощутимо тормозило, особенно компиляция проектов, что не удивительно. Не разобрался, в чем была причина данной ошибки но после перезагрузки процессор стал работать нормально(без нагрузки частота примерно 1200, а при нагрузке примерно 3300). Но периодически после включения компьютера, данная ошибка вновь возникает.
Подскажите пожалуйста, куда копать.

★★★★

В dmesg смотри, наверное тротлинг. Раскрывушки — говно.

anonymous ()

Обычно частоты зажимает биос после выдёргивания шнурка.
Практика очень распространённая. Делается чтобы занизить TDP пакета и получить более крутые цифры в тестах на жизнь от батареи под нагрузкой.
Возможно есть ошибки в прошивке, которые приводят к таким проблемам.

Так или иначе, всё можно вернуть на лету. Вот кусок моего хука к pm-utils:

echo 100 > /sys/devices/system/cpu/intel_pstate/max_perf_pct
echo 0 > /sys/devices/system/cpu/intel_pstate/no_turbo

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

Правильно ли я понимаю, что тротлинг был бы в случае перегрева процессора? Ведь указанное мною поведение начинается сразу после включения.

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

Поставь lm_sensors и проверь температуру, в том числе и под нагрузкой, например с несколькими процессами burnP6. Также не забудь проверить частоту под нагрузкой. Скорей всего тебе нужно почистить ноутбук, поменять термопасту. Или смазать/поменять кулер. Тут все зависит от состояния, конечно же.
Обычно под полной нагрузкой CPU держит температуру на один градус меньше критической, при этом сохраняя приемлимую частоту, а дальше уже throttling, например если горячий воздух накапливается, и просто не успевает выдуваться из ноутбука. Если у тебя high или совсем близко к high в простое, то это означает однозначные проблемы с охлаждением, вплоть до полной потери кулера (у меня например доходило до 233Mhz c K), тогда как раз частота больше 800MHz будет очень редко или совсем недолгой. Ну и при такой частоте у тебя начнет тормозить интерфейс, вплоть до тормозов при перетаскивание окон, не говоря уже о этом что если ты перегреешь даже с минимальной частотой, то у тебя начнет заикаться и заткнется звук, и может даже выключится компьютер, хоть этого и очень сложно добиться на современных CPU, даже без кулера. Но не выдуваемые мелкие корпуса и нагрузка, дают чудеса. И да самой простой способ проверить это все, это просто заглянуть в dmesg и наблюдать за бесконечными сообщениями, вроде:

Core temperature above threshold, cpu clock throttled

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

Проверил. К сожалению(ну или к счастью ошибку не словил вчера). Проверил проц утилитой sysbench. Минут 8 стоял на максимальной частоте, максимальная температура 68 градусов. После выключения sysbench температура в течение нескольких секунд падает до 36-40 градусов. Температуру проверял с помощью lm-sensors(sensors) и i7z. В dmesq ничего относящегося к данной теме не нашел. Поэтому думаю, что дело не в перегреве, а в какой-то ошибке.

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

Проверь может у тебя в BIOS какие-то silient режимы для кулера есть, вот он при старте и его крутит по минимуму. Также проверь настройки пакетов вроде: laptop-mode-tools, pm-utils, tlp и т.д и governor'ы

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

Честно говоря, не вижу смысла. Sysbench же нормальный тест.

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

anonymous_sama
Словил опять ошибку.
Вот значения файлов из каталога
/sys/devices/system/cpu/intel_pstate/
max_perf_pct 100
min_perf_pct 33
no_turbo 0
num_pstates 25
turbo_pct 29
Частоты на ядрах/потоках примерно 900Mhz.

Команды

echo 100 > /sys/devices/system/cpu/intel_pstate/max_perf_pct
echo 0 > /sys/devices/system/cpu/intel_pstate/no_turbo
изменений НЕ дали.

Вот если сделать
echo 100 > /sys/devices/system/cpu/intel_pstate/min_perf_pct
то тогда частоты поднимаются, но все равно как-то прыгают по дуратски(1200-3300), а не держатся на максимальном значении(причем что при запуске стресс теста, что при закрытии всех программ).

Далее вернул состояние min_perf_pct к исходному значению(33).
Затем установил пакет cpufrequtils и попробовал разные политики, но особого изменения не заметил, частота опять начала прыгать.
Удалил cpufrequtils.
Далее как в прошлый раз, просто перезагрузился и после перезагрузки частота без нагрузки держится примерно 1200, при нагрузке примерно 3300, в обоих случаях равномерно.

На всякий случай упомяну про температурный режим:
В случае когда есть состояние ошибки, температура что с нагрузкой, что без не поднимается выше 48-50(видимо т.к. частоты не более 900). После перезагрузки, когда НЕТ состояния ошибки, при нагрузке максимальная температура 72, после отключения нагрузки в течение нескольких секунд устанавливается в значение 48.

Короче, пока решил забить на проблему до поры, потому как нет идей. Если что еще посоветуете - буду рад.

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

Так больше похоже на проблемы pstate.
Если в комплекте дистрибутива есть другое ядро, то попробовать загрузиться с него.
Либо, чтобы убедиться, что это проблемы pstate, заблокировать его параметром ядра intel_pstate=disable.

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

А если я его заблокирую, что перестанет работать?

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

Вместо него будет использоваться acpi_cpufreq как на амуде. Возможно отвалится турбобуст.

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

А если я его заблокирую, что перестанет работать?

Главное, что начнёт работать cpufreq.
Когда вы выше по тексту пытались менять планировщики частоты, это было бесполезное дело, т.к. при работающем intel_pstate ничего из этого не работает.

Сейчас нужно убедиться, что проблема в pstate.

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

А cpufreq идет в виде модуля ядра? Нужно ли его доустанавливать отдельным пакетом?

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

А cpufreq идет в виде модуля ядра?

Да. Но если обнаружен интеловский процессор относительно серии «i», то в бой вступает его собственный модуль управления частотой.

Нужно ли его доустанавливать отдельным пакетом?

Нет, это вообще дефолтный фреймворк ядра по управлению частотами, использовался испокон веков на всех цпу.

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

И еще вопрос, зачем нужен пакет intel-microcode ? У меня он не установлен.

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

откючать intel_pstate как описано здесь

Я использую grub1, там можно прямо во время загрузки выбрать пункт меню, нажать 'e', и отредактировать параметры ядра без сохранения на диск.
Уверен, в grub2 эту возможность сохранили.

зачем нужен пакет intel-microcode

Во время загрузки системы обновляет прошивку процессора (обновлённая версия не сохраняется во время перезагрузки).
Интел не делится чейнджлогами, так что об исправлениях и новых троянах мы не знаем.

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

Так что, не нужно его устанавливать по большому счету?

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

Ставь, вдруг проблема починится. Но если биос свежий микрокод там тоже свежий.

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

Так что, не нужно его устанавливать по большому счету?

Тут как с любой другой прошивкой. Хочешь, ставь апдейты. А не хочешь, не ставь.
Раз проблемы есть, то есть смысл ставить.

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

А если используется acpi_cpufreq вместо intel_pstate, будет ли использоваться intel-microcode(если он установле конечно)?

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

anonymous_sama
Погонял ноут с параметрами ядра:
intel_pstate=disable
processor.ignore_ppc=1
За более чем две недели ни разу проблема не возникала. intel-microcode не ставил.
Сейчас думаю попробовать вернуться к исходной конфигурации и установить пакет intel-microcode и посмотреть, что будет при нем.

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

anonymous_sama, aidaho
Убрал параметры ядра intel_pstate=disable и processor.ignore_ppc=1, затем поставил пакет intel-microcode. Примерно в течение одной недели описанной ошибки частоты замечено не было(хотя может ошибка и было, просто я невнимательно смотрел), а вот позавчера после включения и до перезагрузки частоты всех ядер не поднимались выше 900МГц. Таким образом установка пакета intel-microcode не дает исправления данной ошибки. Поэтому удаляю пакет intel-microcode и вновь возвращаюсь к отключению intel_pstate и включению вместо него acpi_cpufreq, для этого передаю ядру(в системе Ubuntu 16.04 в файле /etc/default/grub в параметре GRUB_CMDLINE_LINUX_DEFAULT) параметры:
intel_pstate=disable processor.ignore_ppc=1
Поскольку с acpi_cpufreq описываемой проблемы еще не было у меня, буду пока использовать его.

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

Раз проблема локализована, то самое время репортить в багтрекер вашего дистрибутива.

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

Ядро новей пробовал? В edge сейчас 4.10.x.

Поэтому удаляю пакет intel-microcode

Не надо его удалять, он точно никак не мешает

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