netdev
[Top] [All Lists]

Re: 3c59x (was Route cache performance under stress)

To: Andi Kleen <ak@xxxxxxx>
Subject: Re: 3c59x (was Route cache performance under stress)
From: Robert Olsson <Robert.Olsson@xxxxxxxxxxx>
Date: Wed, 11 Jun 2003 12:38:33 +0200
Cc: Robert Olsson <Robert.Olsson@xxxxxxxxxxx>, Bogdan Costescu <bogdan.costescu@xxxxxxxxxxxxxxxxxxxxx>, "David S. Miller" <davem@xxxxxxxxxx>, sim@xxxxxxxxxxxxx, ralph+d@xxxxxxxxx, hadi@xxxxxxxxxxxxxxxx, xerox@xxxxxxxxxx, fw@xxxxxxxxxxxxx, netdev@xxxxxxxxxxx, linux-net@xxxxxxxxxxxxxxx
In-reply-to: <20030611100520.GB27119@oldwotan.suse.de>
References: <20030610.085600.71109220.davem@redhat.com> <Pine.LNX.4.44.0306101815550.26879-100000@kenzo.iwr.uni-heidelberg.de> <20030610164949.GB13246@wotan.suse.de> <16102.64602.19145.131439@robur.slu.se> <20030611100520.GB27119@oldwotan.suse.de>
Sender: netdev-bounce@xxxxxxxxxxx

Andi Kleen writes:

 > eth_type_trans checks the ethernet protocol ID and sets the 
 > broadcast/multicast/
 > unicast L2 type.
 > 
 > Some NICs have bits in the RX descriptor for most of them. They have a 
 > "packet is TCP or UDP or IP" bit and also a bit for unicast or sometimes
 > even multicast/broadcast. So when you have the RX descriptor you 
 > can just derive these values from there and put them into the skb
 > without calling eth_type_trans or looking at the cache cold header.
 > 
 > Then you do a prefetch on the header. When the packet reaches the 
 > network stack later the header has already reached cache  and it can be
 > processed without a memory round trip latency.
 > 
 > Caveats: 
 > On some cards it doesn't work for all packets or can be only done 
 > if you don't have any multicast addresses hashed (that's the case
 > for the e1000 if I read the header bits correctly). The lxt1001 
 > (old EOLed card) can do it for all packet types.

 Thanks!
 
 Yes. Like to give this a try when I got chance. It should be something 
 for the driver authors. Any patch handy? e1000?


 Cheers.
                                                --ro

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