netisr ambigios policy

Коньков Евгений kes-kes at yandex.ru
Sat Jan 14 14:45:39 UTC 2012


Здравствуйте, Коньков.

Вы писали 14 января 2012 г., 15:31:04:


КЕ> From sys/net/netisr.c

КЕ>         switch (netisr_dispatch_policy) {
КЕ>         case NETISR_DISPATCH_DEFERRED:
КЕ>                 netisr_direct_force = 0;
КЕ>                 netisr_direct = 0;
КЕ>                 break;

КЕ>         case NETISR_DISPATCH_HYBRID:
КЕ>                 netisr_direct_force = 0;
КЕ>                 netisr_direct = 1;
КЕ>                 break;

КЕ>         case NETISR_DISPATCH_DIRECT:
КЕ>                 netisr_direct_force = 1;
КЕ>                 netisr_direct = 1;
КЕ>                 break;

КЕ> that having direct_force = 0 and direct = 0 it is DISPATCH_DEFFERED

КЕ> but doing:
КЕ> # sysctl net.isr
КЕ> net.isr.numthreads: 4
КЕ> net.isr.maxprot: 16
КЕ> net.isr.defaultqlimit: 256
КЕ> net.isr.maxqlimit: 10240
КЕ> net.isr.bindthreads: 0
КЕ> net.isr.maxthreads: 4
КЕ> net.isr.direct: 0
КЕ> net.isr.direct_force: 0
КЕ> net.isr.dispatch: direct

КЕ> you can see that net.isr.dispatch is 'direct'
КЕ> I expect 'deffered' as it declared here:

КЕ> static const struct netisr_dispatch_table_entry netisr_dispatch_table[] = {
КЕ>         { NETISR_DISPATCH_DEFAULT, "default" },
КЕ>         { NETISR_DISPATCH_DEFERRED, "deferred" },
КЕ>         { NETISR_DISPATCH_HYBRID, "hybrid" },
КЕ>         { NETISR_DISPATCH_DIRECT, "direct" },


КЕ> Is this a BUG?

setting this to
net.isr.direct=1
net.isr.direct_force=1
in /boot/loader.conf
has no effect

# sysctl net.isr
net.isr.numthreads: 4
net.isr.maxprot: 16
net.isr.defaultqlimit: 256
net.isr.maxqlimit: 10240
net.isr.bindthreads: 0
net.isr.maxthreads: 4
net.isr.direct: 0
net.isr.direct_force: 0
net.isr.dispatch: direct

It seems has been broken in r222249



-- 
С уважением,
 Коньков                          mailto:kes-kes at yandex.ru



More information about the freebsd-current mailing list