• Maxim Mikityanskiy's avatar
    net/mlx5e: Use fragments of the same size in non-linear legacy RQ with XDP · 9cb9482e
    Maxim Mikityanskiy authored
    XDP multi buffer implementation in the kernel assumes that all fragments
    have the same size. bpf_xdp_frags_increase_tail uses this assumption to
    get the size of the last fragment, and __xdp_build_skb_from_frame uses
    it to calculate truesize as nr_frags * xdpf->frame_sz.
    
    The current implementation of mlx5e uses fragments of different size in
    non-linear legacy RQ. Specifically, the last fragment can be larger than
    the others. It's an optimization for packets smaller than MTU.
    
    This commit adapts mlx5e to the kernel limitations and makes it use
    fragments of the same size, in order to add support for XDP multi
    buffer. The change is applied only if XDP is active, otherwise the old
    optimization still applies.
    Signed-off-by: default avatarMaxim Mikityanskiy <maximmi@nvidia.com>
    Reviewed-by: default avatarTariq Toukan <tariqt@nvidia.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
    9cb9482e
params.c 27.2 KB