two NIC on 2 core system (scheduling problem)
gizmen at blurp.pl
Tue Oct 28 10:35:57 UTC 2008
i have two core system with freebsd 7.0. I have two NIC; first is em and
second is bge.
I wonder why system put irq processes almost always to one core.
There is example:
11 root 1 171 ki31 0K 8K RUN 0 311.2H 96.19% idle: cpu0
10 root 1 171 ki31 0K 8K CPU1 1 271.4H 71.44% idle: cpu1
21 root 1 -68 - 0K 8K WAIT 1 48.8H 13.87% irq17: bge0
20 root 1 -68 - 0K 8K - 1 42.9H 11.72% em0 taskq
Almost all the time irq17: bge0 and em0 taskq are on second cpu (1).
I use SCHED_4BSD scheduler. How can i make system to use two cores not one
for interrupt handling.
On other router based on the same hardware and software i have something
10 root 1 171 ki31 0K 8K RUN 1 235.4H 78.66% idle: cpu1
11 root 1 171 ki31 0K 8K RUN 0 185.2H 72.12% idle: cpu0
20 root 1 -68 - 0K 8K - 0 48.7H 23.00% em0 taskq
23 root 1 -68 - 0K 8K WAIT 0 19.2H 9.67% irq16: fxp1
21 root 1 -68 - 0K 8K WAIT 1 28.2H 8.01% irq17: bge0
I don't know why on this router system balance over two cores. One
difference is that on this router i have another fxp card (3 total)
Another question is why em0 taskq is eating so much cpu ? BGE interface is
actually one that pushes 2 times more packets than em0 and it uses about
half cpu comparing to em0. Is that not strange ?
Could someone tell my why is this happening ? BGE is faster ? or maybe i can
More information about the freebsd-net