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


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Vladimir Kurtukov                    2:5006/1       11 Jun 2002  14:41:09
 To : Slawa Olhovchenkov
 Subject : Re: Поллинг
 -------------------------------------------------------------------------------- 
 
 
 Slawa Olhovchenkov <Slawa_Olhovchenkov@f500.n5030.z2.fidonet.org> wrote:
 
 SO> Карточка сама шарится по памяти, даже без контроллера DMA
 
 странно, ты сказал, что bus mastering - это не DMA,
 а потом говоришь, что карточка сама шарится по памяти :-)
 противоречие, однако, выходит, ибо DMA - это Direct Memory Access. 
 а third party (standard DMA, с участием контроллера) или first party 
 (bus mastering DMA, самостоятельно) - это в принципиальном смысле
 рояли не играет, все равно прямой доступ к памяти.
 
 что, Слава, слабо признаться, что лажу сказал? ;-)
 
 VK>> я как-то считал, что это один из вариантов DMA...
 
 SO> При DMA контроллеру говорят откуда и как брать один кусок, а дальше карточка
 SO> его жрет. А тут она сам все иницирует.
 
 ну и в чем проблема? :-)
 
 [skipped...]
 
 VK>>>> доп. информация для размышления: ALTQ работает только с исходящим
 VK>>>> траффиком. драйвер вытаскивает пакеты из очереди и буферизует их (у
 VK>>>> fxp - до 128 пакетов), карточка потом выгребает оттуда пакеты и
 VK>>>> посылает, дергая irq по завершению. чем больше пакетов буферизуется,
 VK>>>> тем реже дергается irq, тем меньше возможностей для контроля у ALTQ. у
 VK>>>> не-DMA карт/драйверов, так понимаю, прерывание дергается после
 VK>>>> передачи каждого пакета.
  
 SO>>> fxp умеет генерировать промежуточные прерывания и altq этим пользуется.
 
 VK>> в ALTQ нигде не говорится, что оно этим пользуется. по крайней
 VK>> мере я не видел. предъяви! :-)
 
 SO> Глазки протри.
 
 ба, да мы никак хамить начали? :-) от безысходности, наверное... :-)
 
 tb regulator - это token bucket regulator.
 из man по tbrconfig: A token bucket regulator  limits  both  the 
 average amount  and  instantaneous  amount of packets that the underlying
 driver can dequeue from the network interface within the  kernel.
 
 таким образом это не катит для доказательства твоей фразы 
 'fxp умеет генерировать промежуточные прерывания', зато подтверждает
 то, что писал я. 
 
 SO> +#ifdef ALTQ
 SO> +               /* if tb regulator is used, we need tx complete interrupt */
 SO> +               if (TBR_IS_ENABLED(&ifp->if_snd))
 SO> +                       txp->cb_command |= FXP_CB_COMMAND_I;
 SO> +#endif
 
 а у меня этот кусок выглядит вот так:
 
 +#ifdef ALTQ
 +               if (ALTQ_IS_ON(ifp)) {
 +                       if (sc->tx_queued >= TXBUF_THRESH4ALTQ) {
 +                               /*
 +                                * stop filling tx buffer if we already have
 +                                * enough packets to transmit.
 +                                * we need an interrupt upon tx complete
 +                                * to continue sending.
 +                                */
 +                               if (txp != NULL)
 +                                       txp->cb_command |= FXP_CB_COMMAND_I;
 +                               break;
 +                       }
 
 если смотреть не на твой кусок патча (где ничего толком не видно,
 if (txp != NULL) из начала chunk'а ты выкинул), а на патченый код, 
 видно, что то, что привел я и то, что привел ты - примерно одно и 
 то же, только в 3.1 механизм задания threshold другой,
 он там не hardcoded, а задается через tbrconfig
 
 VK>>>> (ALTQ патчит драйвера и уменьшает кол-во буферизуемых пакетов)
 
 SO>>> Это ты гонишь. Т.е. дравера-то патчатся, но совсем с другой целью --
 SO>>> что бы они использовали процедуры/макросы работы с очередями.
 
 VK>> не только. ы? ;-)
 
 VK>> +#ifdef ALTQ
 VK>> +/*
 VK>> + * device dependent tweak for ALTQ:  if a driver is designed to dequeue
 VK>> + * too many packets at a time, we have to modify the driver to limit the
 VK>> + * number of packets buffered in the device.  This modification
 VK>> + * often needs to change handling of tx complete interrupts as well.
 VK>> + * the fxp driver can pull as many as 128 packets (when FXP_NTXCB is
 VK>> 128).
 VK>> + * TXBUF_THRESH4ALTQ limits buffered packets up to 8.
 VK>> + */
 VK>> +#define TXBUF_THRESH4ALTQ      8
 VK>> +#endif
 
 SO> Проверяем:
 SO> 
 SO>> grep TXBUF_THRESH4ALTQ sys-altq/sys-altq-freebsd-4.5.patch
 
 SO> Ты гонишь.
 
 у меня ALTQ 2.2 :-) у тебя же надо насчет TBR смотреть.
 
 спор этот, я думаю, пора заканчивать, т.к. ты в свою неправоту
 все равно не поверишь, а у меня сейчас и так времени мало...
 да и от темы изначальной давно ушли
 
 -- 
 
 Best regards,          { Vladimir Kurtukov, ICQ 2929697 }
   Vladimir             { vk@hvv.svzserv.kemerovo.su }
                        { 2:5006/9@fidonet }
 
 --- tin/1.5.12-20020427 ("Sugar") (UNIX) (FreeBSD/4.5-STABLE (i386))
  * Origin: SvzServ (2:5006/1@fidonet)
 
 

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

 Тема:    Автор:    Дата:  
 Re: Поллинг   Eugene Grosbein   04 Jun 2002 09:21:10 
 Re: Поллинг   Vladimir Kurtukov   04 Jun 2002 10:58:28 
 Re: Поллинг   Eugene Grosbein   04 Jun 2002 13:00:28 
 Поллинг   Vladimir Kurtukov   04 Jun 2002 17:44:36 
 Поллинг   Slawa Olhovchenkov   04 Jun 2002 10:14:02 
 Re: Поллинг   Eugene Grosbein   04 Jun 2002 15:07:42 
 Re: Поллинг   Eugene Grosbein   04 Jun 2002 15:11:48 
 Поллинг   Slawa Olhovchenkov   04 Jun 2002 12:46:24 
 Re: Поллинг   Eugene Grosbein   04 Jun 2002 18:34:52 
 Поллинг   Slawa Olhovchenkov   04 Jun 2002 15:26:54 
 Re: Поллинг   Vladimir Kurtukov   05 Jun 2002 10:40:54 
 Поллинг   Slawa Olhovchenkov   05 Jun 2002 15:19:04 
 Re: Поллинг   Vladimir Kurtukov   06 Jun 2002 14:56:31 
 Поллинг   Slawa Olhovchenkov   06 Jun 2002 11:34:34 
 Re: Поллинг   Vladimir Kurtukov   06 Jun 2002 17:05:38 
 Поллинг   Slawa Olhovchenkov   06 Jun 2002 14:16:40 
 Поллинг   Vladimir Kurtukov   06 Jun 2002 20:59:55 
 Поллинг   Slawa Olhovchenkov   06 Jun 2002 20:52:22 
 Re: Поллинг   Vladimir Kurtukov   07 Jun 2002 08:53:47 
 Поллинг   Slawa Olhovchenkov   07 Jun 2002 11:44:28 
 Re: Поллинг   Vladimir Kurtukov   11 Jun 2002 14:41:09 
 Поллинг   Slawa Olhovchenkov   11 Jun 2002 11:16:20 
 Поллинг   Vladimir Kurtukov   04 Jun 2002 17:52:43 
 Поллинг   Slawa Olhovchenkov   04 Jun 2002 16:17:12 
 Поллинг   Vladimir Kurtukov   04 Jun 2002 22:18:48 
 Re: Поллинг   Igor Sysoev   04 Jun 2002 16:33:39 
 Re: Поллинг   Pavel Narozhniy   04 Jun 2002 17:02:50 
 Re: Поллинг   Igor Sysoev   04 Jun 2002 17:48:57 
 Re: Поллинг   Oleg Koreshkov   04 Jun 2002 18:15:37 
 Поллинг   Vladimir Kurtukov   04 Jun 2002 22:30:58 
 Поллинг   Ilia Kuliev   04 Jun 2002 20:35:34 
 Re: Поллинг   Rashid N. Achilov   04 Jun 2002 10:02:43 
Архивное /ru.unix.bsd/1089117da5ae8.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional