Thread (209 messages) flat view 209 messages, 18 authors, 2003-06-17

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

From: Robert Olsson <hidden>
Date: 2003-06-11 10:38:33


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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help