• Jason Wang's avatar
    tap: XDP support · 761876c8
    Jason Wang authored
    This patch tries to implement XDP for tun. The implementation was
    split into two parts:
    
    - fast path: small and no gso packet. We try to do XDP at page level
      before build_skb(). For XDP_TX, since creating/destroying queues
      were completely under control of userspace, it was implemented
      through generic XDP helper after skb has been built. This could be
      optimized in the future.
    - slow path: big or gso packet. We try to do it after skb was created
      through generic XDP helpers.
    
    Test were done through pktgen with small packets.
    
    xdp1 test shows ~41.1% improvement:
    
    Before: ~1.7Mpps
    After:  ~2.3Mpps
    
    xdp_redirect to ixgbe shows ~60% improvement:
    
    Before: ~0.8Mpps
    After:  ~1.38Mpps
    Suggested-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: default avatarJason Wang <jasowang@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    761876c8
tun.c 65.8 KB