Eric Seppanen <[EMAIL PROTECTED]> writes:

> On Mon, May 07, 2001 at 09:53:02AM -0600, Ronald G Minnich wrote:
> > are there recommended algorithms for setting the timers? just pick some
> > nice number? I've never been sure what to do with those timers.
> 
> They're not terribly well documented, but here's my best impression.
> This is really for the archives, since I've never seen all this
> information in one place.  I should really put up a webpage about this :)
> 
> Bad: Don't set them at all (in all cases I've looked at this results in a
> setting of zero).
> 
> Better: just pick a number (I use 48 in my code) and set all devices and
> bridges to that.
> 
> Best, in theory, though I doubt anybody does it:
> 
> For each card, read the MIN_GNT and MAX_LAT values, and calculate the
> following:
>   latency_multiplier = (8 for 33MHz, 16 for 66MHz)
>   min_grant_clocks= latency_multiplier * min_gnt
>   max_latency_clocks= latency_multiplier * max_lat
> 
> Then, calculate the desired latency timer values for each device such
> that:
>   1. each card's latency timer should be greater than that card's
>      min_grant_clocks.
>   2. each card's latency timer should be set as high as possible.  This is
>      because the latency timer will truncate pci busmaster cycles when it
>      expires, so a too-low setting will hurt performance.

Note: This only happens on contention for the PCI bus.

>   3. all latency timers should be set low enough that if boards A, B, and
>      C all start doing maximum length transfers, board D will still get
>      the bus before max_latency_clocks has elapsed.  Or,
>         A.LT + B.LT + C.LT < D.max_latency_clocks
>      (should be satisfied for all permutations).
> 
> Whew.
> 
> Needless to say, factory BIOSes are all over the board on this, and I
> suspect that most simply choose the "better" option (fixed values).
> 
> In truth, rule number 1 seems to get violated all the time without any ill
> effects.  Since everybody else ignores rule #1 and I doubt anybody even
> tries to satisfy rule #3, the "better" option seems like the appropriate
> compromise.

Also note that you can play with this in user space with setpci.

With a test setup we have here with very little contention I was able to
get a reliable 10Mbps difference out of an intel gigabit NIC.

Eric

Reply via email to