High CPU interrupt load on intel I350T4 with igb on 8.3

Barney Cordoba barney_cordoba at yahoo.com
Thu May 9 16:25:28 UTC 2013



--- On Thu, 5/9/13, Eugene Grosbein <egrosbein at rdtc.ru> wrote:

> From: Eugene Grosbein <egrosbein at rdtc.ru>
> Subject: Re: High CPU interrupt load on intel I350T4 with igb on 8.3
> To: ""Clément Hermann (nodens)"" <nodens2099 at gmail.com>
> Cc: freebsd-net at freebsd.org
> Date: Thursday, May 9, 2013, 10:55 AM
> On 26.04.2013 18:31, "Clément
> Hermann (nodens)" wrote:
> > Hi list,
> > 
> > We use pf+ALTQ for trafic shaping on some routers.
> > 
> > We are switching to new servers : Dell PowerEdge R620
> with 2 8-cores 
> > Intel Processor (E5-2650L), 8GB RAM and Intel I350T4
> (quad port) using 
> > igb driver. The old hardware is using em driver, the
> CPU load is high 
> > but mostly due to kernel and a large pf ruleset.
> > 
> > On the new hardware, we see high CPU Interrupt load (up
> to 95%), even 
> > though there is not much trafic currently (peaks about
> 150Mbps and 
> > 40Kpps). All queues are used and binded to a cpu
> according to top, but a 
> > lot of CPU time is spent on igb queues (interrupt or
> wait). The load is 
> > fine when we stay below 20Kpps.
> > 
> > We see no mbuf shortage, no dropped packet, but there
> is little margin 
> > left on CPU time (about 25% idle at best, most of CPU
> time is spent on 
> > interrupts), which is disturbing.
> 
> It seems you suffer from pf lock contention. You should stop
> using pf
> with multi-core systems with 8.3. Move to ipfw+dummynet or
> ng_car for 8.3
> or move to 10.0-CURRENT having new, rewritten pf that does
> not have this problem.
> 
> Network device driver is not guilty here, that's just pf's
> contention
> running in igb's context.
> 
> Eugene Grosbein

They're both at play. Single threadedness aggravates subsystems that 
have too many lock points.

It can also be "solved" with using 1 queue, because then you don't
have 4 queues going into a single thread.

BC


More information about the freebsd-net mailing list