RE: [PATCH v12 06/17] Use callback to deal with skb_release_data()specially.

From: Xin, Xiaohui
Date: Mon Oct 11 2010 - 03:07:12 EST


>-----Original Message-----
>From: David Miller [mailto:davem@xxxxxxxxxxxxx]
>Sent: Friday, October 01, 2010 3:15 PM
>To: Xin, Xiaohui
>Cc: netdev@xxxxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
>mst@xxxxxxxxxx; mingo@xxxxxxx; herbert@xxxxxxxxxxxxxxxxxxx; jdike@xxxxxxxxxxxxxxx
>Subject: Re: [PATCH v12 06/17] Use callback to deal with skb_release_data() specially.
>
>From: xiaohui.xin@xxxxxxxxx
>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 linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/