netdev
[Top] [All Lists]

Re: e1000 w/ NAPI + SMP = 99% CPU utilization

To: Chris Carpinello <chriscarpinello@xxxxxxxxxxx>
Subject: Re: e1000 w/ NAPI + SMP = 99% CPU utilization
From: P@xxxxxxxxxxxxxx
Date: Tue, 08 Jun 2004 13:34:52 +0100
Cc: netdev@xxxxxxxxxxx
In-reply-to: <BAY1-F101MkaFmV8ih90004a5a7@xxxxxxxxxxx>
References: <BAY1-F101MkaFmV8ih90004a5a7@xxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040124
Chris Carpinello wrote:
With a stock 2.6.5 kernel, I'm building the e1000 driver as a module
w/ NAPI turned on for an SMP host (Dell PowerEdge 1650 with 4 1Gb
Intel NICs).  ksoftirqd/0 is using 99% CPU utilization.  However, when
I recompile the kernel with NAPI turned off, ksoftirqd/0 behaves
normally.  Likewise, when I leave NAPI configured but turn off SMP
support, ksoftirqd is fine.  The system in question has 2x Intel
Corp. 82544EI (rev 02) and 2x Intel Corp. 82543GC (rev 02).

I'm willing to test patches.  Please CC me on responses, as I'm not
subscribed.  Thanks.

At what packet rate does it go to 100%?
Anyway it's not much to worry about as
it's in polling mode.

One thing which should help is to share
the work across your CPUs. `cat /proc/interrupts`
will show the interrupts for your nics.
Then you can bind the interrupt to a particular CPU like:

echo 1 > /proc/irq/$num/smp_affinity
echo 2 > /proc/irq/$num/smp_affinity
echo 4 > /proc/irq/$num/smp_affinity
echo 8 > /proc/irq/$num/smp_affinity

Pádraig.


<Prev in Thread] Current Thread [Next in Thread>