• E
    ip_gre: lockless xmit · b790e01a
    Eric Dumazet 提交于
    GRE tunnels can benefit from lockless xmits, using NETIF_F_LLTX
    
    Note: If tunnels are created with the "oseq" option, LLTX is not
    enabled :
    
    Even using an atomic_t o_seq, we would increase chance for packets being
    out of order at receiver.
    
    Bench on a 16 cpus machine (dual E5540 cpus), 16 threads sending
    10000000 UDP frames via one gre tunnel (size:200 bytes per frame)
    
    Before patch :
    real	3m0.094s
    user	0m9.365s
    sys	47m50.103s
    
    After patch:
    real	0m29.756s
    user	0m11.097s
    sys	7m33.012s
    
    Last problem to solve is the contention on dst :
    
    38660.00 21.4% __ip_route_output_key          vmlinux
    20786.00 11.5% dst_release                    vmlinux
    14191.00  7.8% __xfrm_lookup                  vmlinux
    12410.00  6.9% ip_finish_output               vmlinux
     4540.00  2.5% ip_push_pending_frames         vmlinux
     4427.00  2.4% ip_append_data                 vmlinux
     4265.00  2.4% __alloc_skb                    vmlinux
     4140.00  2.3% __ip_local_out                 vmlinux
     3991.00  2.2% dev_queue_xmit                 vmlinux
    Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    b790e01a
ip_gre.c 42.3 KB