On Tue, 2016-02-23 at 13:53 +0100, Paolo Abeni wrote: > ndo_set_rx_headroom controls the align value used by tun devices to > allocate skbs on frame reception. > When the xmit device adds a large encapsulation, this avoids an skb > head reallocation on forwarding. > > The measured improvement when forwarding towards a vxlan dev with > frame size below the egress device MTU is around 6% when tunneling over > ipv6. > > In case of ipv4 tunnels there is no improvement, since the tun > device default alignment provides enough headroom to avoid the skb > head reallocation, at least on hosts with 64 bytes cacheline. > > Signed-off-by: Paolo Abeni <pab...@redhat.com> > --- > drivers/net/tun.c | 16 +++++++++++++++- > 1 file changed, 15 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/tun.c b/drivers/net/tun.c > index 88bb8cc..5812693 100644 > --- a/drivers/net/tun.c > +++ b/drivers/net/tun.c > @@ -187,6 +187,7 @@ struct tun_struct { > #define TUN_USER_FEATURES (NETIF_F_HW_CSUM|NETIF_F_TSO_ECN|NETIF_F_TSO| \ > NETIF_F_TSO6|NETIF_F_UFO) > > + int align;
This needs to be initialized to NET_SKB_PAD, to preserved the current behavior. I'll fix it in v2. Paolo