ipip: enable lockless xmits
authorEric Dumazet <eric.dumazet@gmail.com>
Tue, 28 Sep 2010 00:17:17 +0000 (00:17 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 29 Sep 2010 20:25:44 +0000 (13:25 -0700)
commit153f0943382e9ae0bff7caa110a1a4656088d0d4
tree13e8757f7347d70ad6752622309df20b00fa6f05
parentb790e01aee74c23a5d92576177934f13aa51f718
ipip: enable lockless xmits

IPIP tunnels can benefit from lockless xmits, using NETIF_F_LLTX

Bench on a 16 cpus machine (dual E5540 cpus), 16 threads sending
10000000 UDP frames via one ipip tunnel (size:200 bytes per frame)

Before patch :
real 2m53.321s
user 0m10.277s
sys 46m0.597s

After patch:
real 0m32.063s
user 0m9.237s
sys 8m16.255s

Last problem to solve is the contention on dst :

16118.00 28.3% __ip_route_output_key         vmlinux
 6135.00 10.8% dst_release                   vmlinux
 3220.00  5.6% ip_finish_output              vmlinux
 2149.00  3.8% ip_route_output_flow          vmlinux
 1575.00  2.8% ip_append_data                vmlinux
 1481.00  2.6% ip_push_pending_frames        vmlinux
 1349.00  2.4% __xfrm_lookup                 vmlinux
 1216.00  2.1% csum_partial_copy_generic     vmlinux
 1208.00  2.1% udp_sendmsg                   vmlinux

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/ipip.c