@rion

rion

rion
rion

Дата рождения: 17.01.1984

айтишнег, веллер

2 я читаю 22 меня читают
324 постов
502 комментариев
rion
21 Apr 2016

вот предположим есть у меня character device в /dev и какая-то скотина в юзерспейсе его открыла и не хочет закрывать.
Тем временем мы внутри ядра вызываем анрегистрацию этого девайса. Другими словами из /dev он пропадает.

Что происхоодит с user space приложением и его запросами по файловому дескриптору?

21 Apr 2016

omsklug, в dmesg я вижу "Unaligned access page fault".
Я до сих пор не верю что линукс автоматом не удаляет эти файловые дескрпторы из своих внутренних таблиц.

#iprbb/2 в ответ на /1
21 Apr 2016

Если процесс в D-state и ждет конца io с этого устройства, то процесс приостанавливается до завершения I/O. После отключения устройства дескриптор пропадает из таблицы ядра, но выполняющееся приложение имеет в своем стеке копию значения этого дескриптора. Поскольку процесс все ещё ждет конца i/o, а память, выделенная ioremap() уже освобождена, но принадлежит виртуальной памяти процесса будут major page fault, а на сигналы приложение реагировать не будет. Ребутай машину.

#iprbb/3 в ответ на /2
21 Apr 2016

Супер! Спасибо. Записали.

#iprbb/4 в ответ на /3

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.