On Tue, Jan 24, 2006 at 10:35:06PM +0100, Robert Olsson wrote:
>  I splitted alloc_skb in two parts to get the memset() part even done 
>  in the driver just before passing the skb to the stack.
> 
>  I did expect a big win in but I didn't see any gain. Strange but the code 
>  was bad so it might be worth a try again. But this is a bit different 
>  from the skb reuse we discuss now.

Right.  Btw, looking over your changes for skb reuse and how the e1000 
lays out its data structures, I think there is still some room for 
improvement: currently you still touch the skb that the e1000 used to 
allocate the receive buffers in.  That cacheline is likely to be L1 cold 
because of the large number of outstanding buffers the e1000 uses.  If you 
instead only touch the buffer_info structure to populate a freshly 
allocated skb, you can eliminate a couple of cache misses and increase 
the chances that the skb you're reusing stays in the L1 cache.  That will 
require a lot more surgery to the e1000 code, though, but it could be 
worth it.

                -ben
-- 
"Ladies and gentlemen, I'm sorry to interrupt, but the police are here 
and they've asked us to stop the party."  Don't Email: <[EMAIL PROTECTED]>.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to