[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: <>
References: <> <> <> <> <>
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.

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


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