LINUX.ORG.RU

Процессы в состоянии D - как определить что вешает?

 , , ,


0

2

Итак.

Вступление

Debian Stretch, liquorix 4.9, стоит драйвер wl на Broadcom BCM4360. Одновременно с ним работает адаптер на ath9k.

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

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

Вопрос

Как проверить? Либо как узнать что вешает процессы? Мне такая работа системы совершенно не нравится - лечить систему перезагрузкой я отвык уже очень давно и привыкать заново не собираюсь, да и сам факт того, что в любой момент какой-нибудь процесс может повиснуть намертво и не выйти из такого состояния напрягает.

Да, перешедшие в состояние D процессы у меня почему-то не выходят из него. Я понимаю, конечно, что они как бы должны рано или поздно покинуть нирвану, но сколько этого ждать - не известно. Еще ни один процесс, перешедший в состояние D у меня не вышел из него за пять-десять минут.

UPD: Проблема решилась после отключения одного из модулей wifi-драверов. Пришлось выключить старый ath9k и оставить броадкомовский wl.

★★★★★

Начать можно с /proc/$PID/wchan. Ещё в stat и status можно посмотреть количество переключений контекста, чтобы убедиться, что процесс действительно крепко завис. Что делать дальше - я не знаю =).

Deleted ()

Ах да, если используется драйвер не из состава ядра, то скорее всего виноват именно он. И его надо просто выкинуть и не использовать.

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

Мне нужно понять что именно вешает процесс. Я пока что подозреваю что это включенный, но не работающий ath9k. Правда до этого он так себя не вел, пока у меня не было адаптера на BCM4360.

Как вариант, это может быть и BCM4360, но в таком случае все совсем грустно, потому что без этого драйвера адаптер работать не будет...

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

Вот, я уже об этом написал. Я не могу его выкинуть, к сожалению.

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

Драйвер на atheros тоже не очень-то в составе ядра, насколько я понимаю.

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

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

Я пока выгрузил, хочу посмотреть как оно будет вести себя в работе хотя бы в течение получаса-часа. Если все нормально, то в будущем да, придется заблокировать ath9k и вынуть адаптер из компьютера.

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

Хотя вот сегодня у меня повис Ardour и не выключался минут десять. Пришлось перезагружать. Я, конечно, допускаю что он мог лезть в интернет за чем-нибудь, но это как-то странно.

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

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

Нагуглил ту же самую информацию про состояние D. Ну, буду надеяться что в дальнейшем все будет хорошо. Если в течении недели такого повторяться не будет то отмечу тему как решенную.

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

Скорее просто в общем в ядерном коде висит.

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