Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Oct 2008 12:35:53 +0100
From:      Bartosz Giza <gizmen@blurp.pl>
To:        freebsd-net@freebsd.org
Subject:   two NIC on 2 core system (scheduling problem)
Message-ID:  <200810281235.53508.gizmen@blurp.pl>

next in thread | raw e-mail | index | archive | help
Hi,

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 
like that:

   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 
tune some



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200810281235.53508.gizmen>