Interrupt performance

Stefan Lambrev stefan.lambrev at
Fri Jan 28 17:45:02 UTC 2011


On Jan 28, 2011, at 7:25 PM, Slawa Olhovchenkov wrote:

> On Fri, Jan 28, 2011 at 09:10:20AM -0800, Julian Elischer wrote:
>> On 1/28/11 8:15 AM, Stefan Lambrev wrote:
>>> The overhead comes from badly written software.
>>> This software is optimized for linux and you have to optimize it for freebsd, then you will have the same overhead.
>>> All those *popular* benchmarks like hping, iperf, netperf have some strange optimizations for linux - we call them linuxism.
>>> Just search the archives - I'm pretty sure patches are flying around.
>> He wants to know why the freeBSD driver spends 8 x as much time on 
>> each interrupt.
> Yes!
>> there are of course several possible answers, including:
>> 1/ Sometimes BSD and Linux report things differently. Linux may or may not
>> account for the lowest level interrupt tie the same as BSD
> But I see only 20% idle on FreeBSD and 80% idle on Linux.
>> 2/ the BSD driver for that chip may be badly written, or may
>> be doing more or different work for some reason
>> 3/ the FreeBSD interrupt code may be misconfigured for that driver.
>> or maybe combinations...
>> there are profiling tools that you may decide to run.
> What tools I can use on amd64?

Look at this document -
It contains brief information for all useful profiling tools, or just google for "freebsd kernel profiling"
I'm not sure what the situation with RealTek driver, but in the past when I have done profiling, I saw that much of
the CPU time was spent on expensive (for FreeBSD) calls, which where very cheap in linux.

> I boot kernel configured with 'config -p'.
> Most time in spinlock_exit and acpi_cpu_c1.

Best Wishes,
Stefan Lambrev
ICQ# 24134177

More information about the freebsd-performance mailing list