Пишу драйвер для "подколеночной" ISA железяки под ядро 2.4.x. Проблема в передачи данных - требуется непрерывный исходящий поток, поэтому постоянно идет опрос железки на ее готовность и выдача данных (прерывания на передачу неработают - такая кривая железяка). В таком непрерывном режиме работает как надо, но проблема в том, что интерфейс пользователя (GUI) при этом "не отвечает" - перестают работать даже потоки в userspace.
Создал kthread (в обработчике device_write) в надежде, что он будет работать отдельно и не позволит "подвисать" в системном вызове write (а в нем я ужу подожду окончание работы потока через sleep, тем самым отдав время на перерисовку интерфейса), но оказалось, что если я вручную не буду отдавать кванты времени(cond_resched), то и этот поток (созданный через start_kthread) также все блокирует.
Получается всеравно надо самому отдавать кванты времени в созданном потоке ядра?
Решением проблемы вижу в отдаче управления перепланировщику не более чем на какоето время (не более 125 микросекунд).
Где может быть ошибка, куда посоветуете смотреть?
Ответ на:
комментарий
от rei3er
Ответ на:
комментарий
от x905
Ответ на:
комментарий
от x905
Ответ на:
комментарий
от eXire
Ответ на:
комментарий
от rei3er
Ответ на:
комментарий
от x905
Ответ на:
комментарий
от rei3er
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.