On Thu, 2006-02-02 at 17:45, Andi Kleen wrote: 
> There was already talk some time ago to make NAPI drivers use
> the hardware mitigation again. The reason is when you have
> a workload that runs below overload and doesn't quite
> fill the queues and is a bit bursty, then NAPI tends to turn 
> on/off the NIC interrupts quite often.

In SGI's experience, all it takes to get into this state is
an even workload and a sufficiently fast CPU.


On Thu, 2006-02-02 at 17:49, David S. Miller wrote:
> From: Andi Kleen <[EMAIL PROTECTED]>
> Date: Thu, 2 Feb 2006 07:45:26 +0100
> 
> > Don't think it was ever implemented though. In the end we just 
> > eat the slowdown in that particular load.
> 
> The tg3 driver uses the chip interrupt mitigation to help
> deal with the SGI NUMA issues resulting from NAPI.

The tg3 driver uses small hardcoded values for the RXCOL_TICKS
and RXMAX_FRAMES registers, and allows "ethtool -C" to change
them.  SGI's solution is do is ship a script that uses ethtool
at boot to tune rx-usecs, rx-frames, rx-usecs-irq, rx-frames-irq
up from the defaults.

This helps a lot, and we're very grateful ;-)   But a scheme
which used the interrupt mitigation hardware dynamically based on
load could reduce the irq rate and CPU usage even further without
compromising latency at low load.


On Thu, 2006-02-02 at 17:51, Andi Kleen wrote: 
> On Thursday 02 February 2006 04:19, Greg Banks wrote:
> > On Thu, 2006-02-02 at 14:13, David S. Miller wrote:
> > > From: Greg Banks <[EMAIL PROTECTED]>
> 
> > Multiple trips down through TCP, qdisc, and the driver for each
> > NFS packet sent:
> 
> Normally TSO was supposed to fix that.

Sure, except that the last time SGI looked at TSO it was
extremely flaky.  I gather that's much better now, but TSO
still has a very small size limit imposed by the stack (not
the hardware).

> I was playing with a design some time ago to let TCP batch
> the lower level transactions even without that. The idea
> was instead of calling down into IP and dev_queue_xmit et.al.
> for each packet generated by TCP first generate a list of packets
> in sendmsg/sendpage and then just hand down the list
> through all layers into the driver.

Cool.  Wouldn't it mean rewriting the nontrivial qdiscs?

Greg.
-- 
Greg Banks, R&D Software Engineer, SGI Australian Software Group.
I don't speak for SGI.


-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to