netdev
[Top] [All Lists]

Re: Tigon3 5701 PCI-X recv performance problem

To: "David S. Miller" <davem@xxxxxxxxxx>
Subject: Re: Tigon3 5701 PCI-X recv performance problem
From: John Partridge <johnip@xxxxxxx>
Date: Mon, 13 Oct 2003 14:53:54 -0500
Cc: Andi Kleen <ak@xxxxxxx>, modica@xxxxxxx, netdev@xxxxxxxxxxx, jgarzik@xxxxxxxxx, jes@xxxxxxx
In-reply-to: <20031011105054.0e16a607.davem@xxxxxxxxxx>
References: <3F844578.40306@xxxxxxx> <20031008101046.376abc3b.davem@xxxxxxxxxx> <3F8455BE.8080300@xxxxxxx> <20031008183742.GA24822@xxxxxxxxxxxxx> <20031008122223.1ba5ac79.davem@xxxxxxxxxx> <20031008202248.GA15611@xxxxxxxxxxxxxxxx> <3F8702FF.70500@xxxxxxx> <20031010192036.GA31727@xxxxxxxxxxxxx> <3F8802E6.5030601@xxxxxxx> <20031011131921.GC21763@xxxxxxxxxxxxx> <20031011105054.0e16a607.davem@xxxxxxxxxx>
Reply-to: johnip@xxxxxxx
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5b) Gecko/20030905 Thunderbird/0.2
Could we create a module argument like "do_5701_align" and just give it a -1
default which does NOT do the copy but if we give the arg 1, 0, whatever it
DOES to the copy to align the buffs ?

Then inside the driver we define a macro to handle that ?

That way all you need is to include "tg3 do_5701_align=1" in modules.conf

That way all the default comiles work and no CONFIG option for people
who compile all defaults and don't want to re compile the kernel for
this issue.

Is that acceptable ?

John

David S. Miller wrote:
On Sat, 11 Oct 2003 15:19:21 +0200
Andi Kleen <ak@xxxxxxx> wrote:


Then just don't set the argument to zero in modules.conf on the 5704cards. That could be even handled somewhere in user space. Switching over sounds best of course, because the performance with the copying won't be great


There is no "argument" we don't have a variable in the tg3 driver
that determines the "copybreak", it's a hard-coded macro define.

For them it's really easy to know when the 5701 hw bug case is present,
so they can do something like:

        if (len > RX_COPY_THRESHOLD
#ifdef CONFIG_UNALIGNED_EXPENSIVE
            || tp->rx_offset == 2
#endif
            ) {
        ...

And then only their platform and only when the buggy chips are present,
will get the desired change in behavior.

--
John Partridge

Silicon Graphics Inc
Tel:  651-683-3428
Vnet: 233-3428
E-Mail: johnip@xxxxxxx


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