LINUX.ORG.RU

Что происходит в ядре, когда драйвер делает udelay?

 , ,


1

3

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

Когда драйвер делает udelay, то он остается на ядре и занимает его? Другие драйверы или юзерские программы не могут пользоваться этим ядром?

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

Ответ на: комментарий от tailgunner

Заданный вопрос не об этом

начальный - да, но я отвечал не на него

Да и накладные расходы usleep_range выглядят запретительными на десятках микросекунд

зависит от процессора

On slower systems, (embedded, OR perhaps a speed-stepped PC!) the overhead of setting up the hrtimers for usleep *may* not be worth it

японцы умудрялись выполнять задачи с периодичночстью 10 мкс на пентиум 2 на модифицированном ядре

http://art-linux.sourceforge.net/

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

Да и накладные расходы usleep_range выглядят запретительными на десятках микросекунд

зависит от процессора

Конечно. Думаю, на некоторых и сотни микросекунд будут невыгодны.

японцы умудрялись выполнять задачи с периодичночстью 10 мкс на пентиум 2 на модифицированном ядре

http://art-linux.sourceforge.net/

Эти «задачи» не были полноценными задачами Linux. Такие задачи да, можно и помногу раз за микросекунду.

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

450 MHz это же 1/450 мкс

Да, Капитан. А 100МГц - это 1/100мкс. Но время переключения контекстов на 100МГц Pentium - десятки мкс.

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

Но время переключения контекстов на 100МГц Pentium - десятки мкс.

на современных процессорах - 1..2 мкс

И даже чуть больше, как отмечает и сам Эли. Что делает реализацию коротких задержек через планировщик непрактичной, как и было сказано выше (вопрос вымывания кэша даже не рассматриваем)..

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

Что делает реализацию коротких задержек через планировщик непрактичной

да это понятно, мне вообще непонятно - нафига нужны короткие задержки, Linux не микроконтроллерная ОС.

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

мне вообще непонятно - нафига нужны короткие задержки

Выше сказано - некоторые устройства их требуют.

Linux не микроконтроллерная ОС

Да где его только нет... Сделали же ucLinux.

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

Выше сказано - некоторые устройства их требуют

ну раз васян сказал - так оно и есть :)

Сделали же ucLinux

гадость какая-то. Кто-то сэкономил и сделал CPU без MMU с богатой периферией, вопрос - нахер это чудо нужно если за те же деньги можно взять нормальный с MMU ?

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

Выше сказано - некоторые устройства их требуют

ну раз васян сказал - так оно и есть :)

Это да. Куда тебе спорить с васянами.

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