>-----Original Message----- >From: David Miller [mailto:da...@davemloft.net] >Sent: Friday, October 01, 2010 3:15 PM >To: Xin, Xiaohui >Cc: net...@vger.kernel.org; kvm@vger.kernel.org; linux-ker...@vger.kernel.org; >m...@redhat.com; mi...@elte.hu; herb...@gondor.apana.org.au; >jd...@linux.intel.com >Subject: Re: [PATCH v12 06/17] Use callback to deal with skb_release_data() >specially. > >From: xiaohui....@intel.com >Date: Thu, 30 Sep 2010 22:04:23 +0800 > >> @@ -197,10 +197,11 @@ struct skb_shared_info { >> union skb_shared_tx tx_flags; >> struct sk_buff *frag_list; >> struct skb_shared_hwtstamps hwtstamps; >> - skb_frag_t frags[MAX_SKB_FRAGS]; >> /* Intermediate layers must ensure that destructor_arg >> * remains valid until skb destructor */ >> void * destructor_arg; >> + >> + skb_frag_t frags[MAX_SKB_FRAGS]; >> }; >> >> /* The structure is for a skb which pages may point to > >Why are you moving frags[] to the end like this?
That's to avoid the new cache miss caused by using destructor_arg in data path like skb_release_data(). That's based on the comment from Eric Dumazet on v7 patches. Thanks Xiaohui -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html