Andi Kleen wrote:
On Thursday 02 February 2006 08:31, Greg Banks wrote:


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.


All user tuning like this is bad. The stack should all do that automatically. Would there be a drawback of making these
settings default?

Larger settings (even the defaults) of the coalescing parms, while giving decent CPU utilization for a bulk transfer and better CPU utilization for a large agregate workload seem to mean bad things for minimizing latency.

The "presentation" needs work but the data in:

ftp://ftp.cup.hp.com/dist/networking/briefs/nic_latency_vs_tput.txt

should show some of that.  The current executive summary:

Executive Summary:

By default, the e1000 driver used in conjunction with the A9900A PCI-X
Dual-port Gigabit Ethernet adaptor strongly favors maximum packet per
second throughput over minimum request/response latency.  Anyone
desiring lowest possible request/response latency needs to alter the
modprobe parameters used when the e1000 driver is loaded.  This
appears to reduce round-trip latency by as much as 85%.

However, configuring the A9900A PCI-X Dual-port Gigabit Ethernet
adaptor for minimum request/response latency will reduce maximum
packet per second performance (as measured with the netperf TCP_RR
test) by ~23% and increase the service demand for bulk data transfer
by ~63% for sending and ~145% for receiving.


there is also some data in there for tg3 and for xframe I (but with a rather behind the times driver, i'm still trying to get cycles to run with a newer driver)

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.


If you know what's needed perhaps you could investigate it?

I'm guessing that any automagic interrupt mitigation scheme might want to know what it wants to enable for the single-stream TCP_RR transaction/s as the base pps before it starts holding-off interrupts. Even then however, the ability for the user to overrride needs to remain because there may be a workload that wants that PPS rate, but isn't concerned about the latency, only the CPU utilization and so indeed wants the interrupts mitigated. So it would seem that an automagic coalescing might be an N% solution, but I don't think it would be 100%. Question then becomes whether or not N is large enough to warrant it over defaults+manual config.

rick jones
-
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