netisr ambigios policy

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


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?




More information about the freebsd-current mailing list