CPU affinity with ULE scheduler

Ivan Voras ivoras at freebsd.org
Mon Nov 17 05:18:02 PST 2008


Archimedes Gaviola wrote:

> With net.isr.direct=0, my IBM system lessens CPU utilization per
> interface (bce0 and bce1) but swi1:net increase its utilization.
> Can you explained what's happening here? What does net.isr.direct do
> with the decrease of CPU utilization on its interface? 

The system has a choice between processing the packets in the interrupt
handler (the "irq:bce" process) or in a dedicated network process (the
"swi:net" process). This is about protocol handling not simply receiving
packets. With net.isr.direct you're toggling between those two options.
If "direct" is 1, the packets are processed in the interrupt handler; if
it's 0, the processing is delegated to swi. It's set to 1 by default
because this setting should yield best latency.

In both cases the code path a packet must go through is very similar: it
has to be received, then processed through firewalls and network stack
code, then delivered to application(s), so it's a serial process. There
are things that could be better parallelized in the stack and people are
working on them, but they will not be finished any time soon.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-smp/attachments/20081117/5c417e8c/signature.pgp


More information about the freebsd-smp mailing list