Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Valentin Nechayev                    2:5020/400     05 Sep 2004  10:53:03
 To : Yar Tikhiy
 Subject : Re: interrupt
 -------------------------------------------------------------------------------- 
 
 >>> Yar Tikhiy wrote: 
 
 YT>>> Дело все в том, что в версии 4 еще сохранилось деление
 YT>>> ядра на верхнюю и нижнюю половины.  Верхняя считается как
 YT>>> system, это все, что выполняется от имени процессов (грубо
 YT>>> говоря, syscalls).  Hижняя -- interrupt, ее выполнение
 YT>>> инициируется как раз из прерываний от устройств.  Очевидно,
 YT>>> что ipfw относится к нижней части.
 VN>> Оно и в пятерке есть. Только в старом bottom half остался только таймер.
 VN>> Остальное загнали на псевдопроцессы. Как по мне, не стоило так резко
 VN>> переключаться на эту схему.
 YT> Почему же?  Коль решили делать систему с возможностью параллельного
 YT> выполнения, то надо переходить на многонитевое ядро.
 
 Оно и было многонитевым. В верхней части.
 Hижнюю же полностью перевести на такую работу невозможно принципиально,
 как минимум таймер и шедулер (не включая их фоновые пересчётные действия)
 не могут быть уложены в эту схему.
 
 YT>  Ведь раньше
 YT> ядро BSD по сути представляло собой набор процедур, которые вызывались
 YT> процессами пользователей или обработчиками прерываний.  Hасколько
 YT> я понял, при таком подходе весьма сложно сделать тонкую блокировку
 YT> общих данных и т.п.
 
 Она и не была нужна.
 А теперь посмотри на линуксовое ядро с его квадратно-гнездовой схемой.
 "Тонкая блокировка" есть. А структура - всё тот же "набор процедур".
 Скользящая сериализация имени FreeBSD5 - вещь хорошая для kernel preemption,
 а теперь объясни, накойхер нам kernel preemption в обычном сервере?
 Профилирование? Его можно и другими средствами делать вполне успешно.
 Вынесение заметной части работы из "ненумерованных" потоков прерываний
 (включая и аппаратные и softinterrupt) в нумерованные и учитываемые?
 Так это и без тотального скольжения можно сделать:
 
   PID TTY      STAT   TIME COMMAND
     1 ?        S      0:07 init [3]
     2 ?        SW     0:00 [keventd]
     3 ?        SWN    0:13 [ksoftirqd_CPU0]
 [...]
 # uname -mrs
 Linux 2.4.28-pre2-ow1 i686
 
 Softinterrupt в этой схеме уже учтён - в ksoftirqd_CPU0. Потребуется
 вынести какие-то действия сюда ещё, разнести по разным потокам -
 будет точно так же сделано, ну будет больше похоже на FreeBSD'шную схему
 со множеством swi. Потребуется что-то вынести в фон - породят ещё
 ядрёных веток. А тотальный preemption зачем?
 Ради realtime? И где то realtime?
 
 YT>  Теперь аппаратное прерывание только будит
 YT> соответствующую нить в ядре.  Говоря умными словами, произошла смена
 YT> парадигмы :-)
 
 Hу, будит. Увеличивая количество горизонтальных переключений контекстов.
 Раньше обходились вертикальными переключениями для таких случаев,
 которые дешевле.
 
 YT>>> В CURRENT, я думаю, мы когда-нибудь увидим отдельные нити
 YT>>> ip_input, ipfw_in, ip_forward, ipfw_out, ip_output.
 VN>> Вполне возможно. А зачем ipfw_in отдельно от ip_input?
 YT> Чтобы можно было отдельно следить за потреблением ресурсов.  Тогда
 YT> легче будет решать вопросы вроде: "Почему тормозит мой маршрутизатор?"
 
 Это решается профилированием. Ты, кстати, INN 2.4 рассматривал?
 Там встроили профилирование в innd, innreport рассказывает времена.
 А в ядре всё это уже есть - profile timer, осталось на него только
 учёт адресов навесить.
 -netch-
 --- ifmail v.2.15dev5.3
  * Origin: Dark side of coredump (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 interrupt   Victor Sudakov   01 Sep 2004 20:45:05 
 Re: interrupt   Yar Tikhiy   02 Sep 2004 08:20:05 
 Re: interrupt   Victor Sudakov   02 Sep 2004 20:28:38 
 Re: interrupt   Valentin Nechayev   04 Sep 2004 14:55:30 
 Re: interrupt   Yar Tikhiy   04 Sep 2004 14:53:57 
 interrupt   Slawa Olhovchenkov   04 Sep 2004 17:13:22 
 Re: interrupt   Yar Tikhiy   04 Sep 2004 17:29:55 
 interrupt   Slawa Olhovchenkov   04 Sep 2004 19:05:16 
 Re: interrupt   Gleb Smirnoff   05 Sep 2004 02:48:49 
 Re: interrupt   Gleb Smirnoff   05 Sep 2004 02:51:45 
 interrupt   Slawa Olhovchenkov   05 Sep 2004 17:26:40 
 Re: interrupt   Gleb Smirnoff   05 Sep 2004 22:45:07 
 interrupt   Slawa Olhovchenkov   05 Sep 2004 22:49:40 
 interrupt   Slawa Olhovchenkov   09 Sep 2004 02:23:10 
 Re: interrupt   Valentin Nechayev   05 Sep 2004 10:53:03 
 Re: interrupt   Yar Tikhiy   05 Sep 2004 19:35:50 
 Re: interrupt   Valentin Nechayev   06 Sep 2004 09:55:48 
 Re: interrupt   Anton V. Yuzhaninov   04 Sep 2004 18:28:38 
 Re: interrupt   Valentin Davydov   06 Sep 2004 19:34:28 
 Re: interrupt   Gleb Smirnoff   07 Sep 2004 00:28:58 
 Re: interrupt   Andrey Blochintsev   07 Sep 2004 15:48:18 
Архивное /ru.unix.bsd/223835f43d067.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional