LINUX.ORG.RU
ФорумTalks

доступ к планировщику процессов в linux


1

1

Чего то как то не нашел я возможности работать с планирощиком процессов, только есть посылка сигналов.

А в от если какой процесс подвис и по kill -9 не убивается (например, глюк в драйвере), то неясно, что делать. Хотя казалось бы, всегда технически возможно просто выкинуть его из таблицы процессов и освободить ресурсы.

★★★★★

Последнее исправление: cvs-255 (всего исправлений: 1)

Я видел такое только с зомби-процессами. В таких случаях помогает только ребут.

+1 К вопросу.

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

rmmod --force

это костыль, который с большой вероятностью еще и kernel panic или как минимум oops вызовет.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

А как ты его выкинешь, если, допустим у тебя в драйвере происходит ожидание прерывания которое никогда не придет? Или дедлока в драйвере? Если драйвер написан корректно - такой ситуации не возникнет, а если она возникла - самое время открыть vim/emacs, починить драйвер и отправить патч в LKML.

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от cvs-255

Зомби уже освободил свои ресурсы и осталась только запись в таблице процессов.

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

Принудительно удаляем процессы, использующие драйвер. Затем останавливаем поток драйвера и вынружаем и его.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

этот вопрос аналогичен, «что делать если глючит драйвер», или «как пользоваться глючным железом».

[trollmode] возьми миникс или гну-хард [/trollmode]

nanoolinux ★★★★
()
Ответ на: комментарий от cvs-255

останавливаем поток драйвера и вынружаем и его

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

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

залочил семафор и захватил ресурс

наверное где то это записано. И при выключении драйвера можно разлочить

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

наверное где то это записано

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

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

ps -lax и прибить предка.

Не всегда можно прибить предка зомби. Например, если его родитель — systemd с PID=1 (буквально пару часов назад такая ситуация возникла).

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

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

писал. Но они выгружались нормально.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

я писал для pcie карточки с fpga чипом, причём документации никакой, только диалог с разработчиком, который в vhdl в общем-то шарит не плохо, но про pcie нифига не знает. юзал какой-то готовый компонент от xilinx. так вот самая большая трабла была именно с обработчиком прерываний. во первых я офигел от количества ограничений присущих его работе, а во вторых в битиках карточки надо было битики ставить какие-то в определённой последовательности, иначе либо эти прерывания идут просто с какой-то неимоверной частотой, либо вообще тухнут навсегда. так вот я задолбался машину перегружать тогда. ибо после одной неверной операции всё либо висло, либо глючило.

и да, мой дравер тоже выгружался с ключиком --force в большинстве случаев, только после этого настолько странные вещи проявлялись, что ни о какой дальнейшей работе не могло быть и речи.

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

nanoolinux ★★★★
()

Ты про uninterruptible sleep? Да, тоже достаёт. Постоянно возникает при проблемах с сетью или винтами. Приходится перезагружать машину, прям как в Винде.

Придумали бы уже какой-нибудь watchdog, который бы не допускал вечного ожидания, а мочил бы к чёртовой матери процесс и драйвер, и т.д. по таймауту.

lyset ★★★
()
Последнее исправление: lyset (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.