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: Tue, 14 Oct 2003 11:49:14 -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

The key point for me is, as David said yesterday, SGI users will only
have to recompile the tg3 driver with the CONFIG defined to get the desired
behavior, not hte whole kernel. They just use the recompiled driver with
whatever kernel they are using. Users who use SGI propack will already
have the (static) driver with the CONFIG defined by SGI, SuSE users
who use a tg3.o use it as a module anyway, so it's not a big deal
just to recompile tg3. The only problem I can see is if users use RedHat
Advanced Server, I believe the tg3 driver is static in the kernel so they
won't be able to just recompile the tg3 driver.

I do propose that we make the CONFIG a little more descriptive something like

 CONFIG_5701PCIX_UNALIGNED_EXPENSIVE

just to make it easier for users to see what it does.

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>