Как я могу отлаживать частые неисправимые зависания?

9

Мой новый XPS 13 (9360 с процессором KabyLake) с предустановленной Ubuntu 16.04 часто зависает полностью без видимой причины.

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

Работающие пользовательские процессы - это в основном несколько вкладок Chrome и терминал.

Вещи, которые я проверял и пробовал, включают в себя:

После этого замерзания все еще происходят. Теперь я в растерянности. Мой вопрос таков:

Как найти причину проблемы?

justfortherec
источник
Это похоже на ошибку cstate, которая существовала в процессорах Bay-Trail. Думаю, стоит попробовать и это исправить. Перезагрузите компьютер, пока не увидите параметры grubзагрузки. Нажмите, eчтобы открыть параметры командной строки. Затем добавьте intel_idle.max_cstate=1сразу после слов quiet splashи загрузитесь. Посмотри, работает ли это. Возможно, вам придется подать ошибку в Launchpad. Какое ядро ​​вы используете?
negusp
@PatrickNegus Это с ядром 4.4.0-47-generic. Есть опция BIOS для отключения C состояний. По сути, это то же самое? Я постараюсь редактировать командную строку. Под «ошибкой cstate, существовавшей с процессором Bay-Trail», вы подразумеваете ошибку ядра или аппаратную ошибку? Стоит ли пробовать новые основные ядра?
justfortherec
Ядро 4.8 имеет гораздо лучшую поддержку Kaby Lake, чем 4.4. Так что да, пожалуйста, обновите. Что касается ошибки Bay-Trail, то она была и остается ошибкой ядра, которая не позволяет Ubuntu эффективно управлять спящими состояниями процессора (что экономит электроэнергию для процессора и обеспечивает гораздо большую эффективность простоя).
negusp
Спасибо за вашу помощь, @PatrickNegus. Просто чтобы убедиться, что мы имеем в виду одно и то же. Вы имеете в виду обновление до ядра 16.10, как описано в askubuntu.com/a/840184/63018 ?
Justfortherec
Да, это то, что я имел в виду.
negusp

Ответы:

4

Отключите intel_cstates(состояния энергосбережения, предназначенные для уменьшения потерь тепла и потребления энергии процессором), отредактировав /etc/default/grub:

sudo nano /etc/default/grub

Найдите строку, содержащую GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Добавьте intel_idle.max_cstate=1сразу следующее splash.

В качестве альтернативы, если ваш BIOS поддерживает это, отключите указанные C-состояния оттуда.

Примечание: это не долговременное решение. Отключение C-состояний значительно увеличивает потребление энергии и расход тепла. Только попробуйте, если нет других решений и обновление вашего ядра ничего не решает!

negusp
источник
почему именно это поможет?
Корин
@Korijn ... это было давно, но была (или, возможно, устранена) ошибка с процессорами Intel Bay Trail, из-за которой в системе существенная нестабильность при включенных состояниях энергосбережения. Отключение c-состояний исправляет ошибку.
negusp
3

Как установить ядро ​​4.8.5

Несмотря на то, что 4.8.7 является новейшим ядром, в этом 500-почтовом журнале ошибок длиной 1 год ( Bug 109051 - intel_idle.max_cstate = 1, необходимому для защиты от сбоев ), сообщается, что он не работает. Буквально вчера кто-то написал, что он попробовал 4.8.7, он рухнул, поэтому они вернулись к 4.8.6.

Несмотря на то, что заголовок журнала ошибок относится к «Bay Trail», представленные решения применимы к другим платформам Intel, как сообщают пользователи. Поскольку в течение почти одного года существует 582 сообщения, я рекомендую нажать Endклавишу после открытия ссылки и прокрутить вверх оттуда.

Я запускаю и снова включаю 4.8.5 вместе с 4.4.0-47 в течение нескольких недель и чувствую себя комфортно, используя любой из них. Это инструкции по установке ядра версии 4.8.5:

cd /tmp
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8.5/linux-headers-4.8.5-040805_4.8.5-040805.201610280434_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8.5/linux-headers-4.8.5-040805-generic_4.8.5-040805.201610280434_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8.5/linux-image-4.8.5-040805-generic_4.8.5-040805.201610280434_amd64.deb
sudo dpkg -i *.deb
sudo reboot

Вы можете установить любое ядро, посетив сайт: ( http://kernel.ubuntu.com/~kernel-ppa/mainline/ ) и адаптировав там ссылки к вышеприведенным инструкциям.

WinEunuuchs2Unix
источник
Спасибо за информацию. Однако я не приму его как ответ на эту тему, потому что он затрагивает вопрос, который я поднял в комментарии, а не исходный вопрос этой темы.
Justfortherec
Верно. Дайте мне знать, если вы попробуете новое ядро, и если оно будет работать.
WinEunuuchs2Unix
2
Моя система перестала зависать случайно после обновления до любого 4.8 ядра, которое я пробовал (LTS 4.8.0-25.27~16.04.1и mainline 4.8.12-040812.201612020431).
Justfortherec