two NIC on 2 core system (scheduling problem)

Bruce Cran bruce at
Thu Oct 30 20:32:05 PDT 2008

On Tue, 28 Oct 2008 12:21:32 +0100
Ivan Voras <ivoras at> wrote:

> Oleksandr Samoylyk wrote:
> > Ivan Voras wrote:
> >> Bartosz Giza wrote:
> >>
> >>> 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
> >>
> >> I have the same problem - em0 taskq eating incredible amounts of
> >> CPU. If you find a solution, contact me!
> >>
> >>
> > 
> > It could be not just a problem with em driver.
> > Firstly, it's good to make profiling and find out what exactly eats
> > CPU
> Can you give any pointers on how to profile the driver and/or the
> network stack?

From what I remember from a couple of years ago you can use hwpmc in
system mode to profile the kernel if you have a supported CPU - I
certainly remember seeing the output of gprof tell me the UDP checksum
function was taking most of the time in a test I ran. To get started
you need options HWPMC_HOOKS and device hwpmc in your kernel config
(hwpmc can also be a module) - then you run pmcstat to run the test.
There's lots more information at

Bruce Cran

More information about the freebsd-net mailing list