From: Benjamin LaHaise <[EMAIL PROTECTED]>
Date: Fri, 16 Dec 2005 14:52:01 -0500

> In __alloc_skb(), the use of skb_shinfo() which casts a u8 * to the 
> shared info structure results in gcc being forced to do a reload of the 
> pointer since it has no information on possible aliasing.  Fix this by 
> using a pointer to refer to skb_shared_info.
> 
> By initializing skb_shared_info sequentially, the write combining buffers 
> can reduce the number of memory transactions to a single write.  Reorder 
> the initialization in __alloc_skb() to match the structure definition.  
> There is also an alignment issue on 64 bit systems with skb_shared_info 
> by converting nr_frags to a short everything packs up nicely.
> 
> Also, pass the slab cache pointer according to the fclone flag instead 
> of using two almost identical function calls.
> 
> This raises bw_unix performance up to a peak of 707KB/s when combined 
> with the spinlock patch.  It should help other networking protocols, too.

Applied.  But Ben, please supply Signed-off-by: lines with your
patches, thanks a lot.
-
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