Re: [PATCH 1/2] vxlan: Add needed_headroom for lower device

From: Jakub Kicinski
Date: Mon Nov 30 2020 - 21:35:24 EST


On Thu, 26 Nov 2020 13:52:46 +0100 Sven Eckelmann wrote:
> It was observed that sending data via batadv over vxlan (on top of
> wireguard) reduced the performance massively compared to raw ethernet or
> batadv on raw ethernet. A check of perf data showed that the
> vxlan_build_skb was calling all the time pskb_expand_head to allocate
> enough headroom for:
>
> min_headroom = LL_RESERVED_SPACE(dst->dev) + dst->header_len
> + VXLAN_HLEN + iphdr_len;
>
> But the vxlan_config_apply only requested needed headroom for:
>
> lowerdev->hard_header_len + VXLAN6_HEADROOM or VXLAN_HEADROOM
>
> So it completely ignored the needed_headroom of the lower device. The first
> caller of net_dev_xmit could therefore never make sure that enough headroom
> was allocated for the rest of the transmit path.
>
> Cc: Annika Wickert <annika.wickert@xxxxxxxxxx>
> Signed-off-by: Sven Eckelmann <sven@xxxxxxxxxxxxx>

Applied both, thanks!