David Miller <davem@xxxxxxxxxxxxx> wrote: > From: Eric Dumazet <eric.dumazet@xxxxxxxxx> > Date: Mon, 02 Mar 2015 20:02:05 -0800 > > > About the GRO layout change, reason why 'struct sk_buff *last;' is at > > the end of struct napi_gro_cb is that this field is not used in fast > > path. > > Understood. Moved it back to end, thanks! > While reviewing this I noticed that the jiffies timestamp in GRO cb > could really be u32 if we want instead of full "unsigned long". Made it an u16 at the moment -- then __packed is no longer needed and it fits in 40 bytes. > > Note : We could try to use one bit in skb to advertise zero shinfo(skb). > > > > Many skbs have a zeroed shinfo() (but shinfo->dataref == 1) , and > > dereferencing skb_shinfo adds a cache line miss. > > > > -> We could avoid memset(shinfo, 0, offsetof(struct skb_shared_info, > > dataref)) & atomic_set(&shinfo->dataref, 1); > > > > in alloc_skb() and friends completely. > > > > Unfortunately this kind of change would be quite invasive... > > Right, all these kinds of things touch everything. Indeed, but thanks for the hint Eric -- I'll investigate. -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html