On Fri, 2013-05-17 at 15:50 +0900, Simon Horman wrote: > @@ -509,6 +511,8 @@ struct sk_buff { > __u32 reserved_tailroom; > }; > > + __be16 inner_protocol; > + /* 16/48 bit hole */ > sk_buff_data_t inner_transport_header; > sk_buff_data_t inner_network_header; > sk_buff_data_t inner_mac_header;
We are reaching the point where sk_buff is so big that per packet cost is killing us, and guys want linux kernel bypass. sizeof(sk_buff) = 0xf8 -> 0x100 sizeof(skbuff_fclone_cache) = 0x200 -> 0x240 So TCP stack performance is going to be hurt by this change, as the atomic_t containing fclone_ref will be in a separate cache line. __copy_skb_header() needs to be smarter and perform a bulk copy using long words Maybe we could use 16 bits instead of 32 for the inner_*_headers ? _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev