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


9

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

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

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

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

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

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


Это похоже на ошибку 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-состояний значительно увеличивает потребление энергии и расход тепла. Только попробуйте, если нет других решений и обновление вашего ядра ничего не решает!


почему именно это поможет?
— Корин

@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/ ) и адаптировав там ссылки к вышеприведенным инструкциям.


Спасибо за информацию. Однако я не приму его как ответ на эту тему, потому что он затрагивает вопрос, который я поднял в комментарии, а не исходный вопрос этой темы.
— Justfortherec

Верно. Дайте мне знать, если вы попробуете новое ядро, и если оно будет работать.
— WinEunuuchs2Unix

2
Моя система перестала зависать случайно после обновления до любого 4.8 ядра, которое я пробовал (LTS 4.8.0-25.27~16.04.1и mainline 4.8.12-040812.201612020431).
— Justfortherec
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.