• Eric Dumazet's avatar
    net: use per task frag allocator in skb_append_datato_frags · b2111724
    Eric Dumazet authored
    
    
    Use the new per task frag allocator in skb_append_datato_frags(),
    to reduce number of frags and page allocator overhead.
    
    Tested:
     ifconfig lo mtu 16436
     perf record netperf -t UDP_STREAM ; perf report
    
    before :
     Throughput: 32928 Mbit/s
        51.79%  netperf  [kernel.kallsyms]  [k] copy_user_generic_string
         5.98%  netperf  [kernel.kallsyms]  [k] __alloc_pages_nodemask
         5.58%  netperf  [kernel.kallsyms]  [k] get_page_from_freelist
         5.01%  netperf  [kernel.kallsyms]  [k] __rmqueue
         3.74%  netperf  [kernel.kallsyms]  [k] skb_append_datato_frags
         1.87%  netperf  [kernel.kallsyms]  [k] prep_new_page
         1.42%  netperf  [kernel.kallsyms]  [k] next_zones_zonelist
         1.28%  netperf  [kernel.kallsyms]  [k] __inc_zone_state
         1.26%  netperf  [kernel.kallsyms]  [k] alloc_pages_current
         0.78%  netperf  [kernel.kallsyms]  [k] sock_alloc_send_pskb
         0.74%  netperf  [kernel.kallsyms]  [k] udp_sendmsg
         0.72%  netperf  [kernel.kallsyms]  [k] zone_watermark_ok
         0.68%  netperf  [kernel.kallsyms]  [k] __cpuset_node_allowed_softwall
         0.67%  netperf  [kernel.kallsyms]  [k] fib_table_lookup
         0.60%  netperf  [kernel.kallsyms]  [k] memcpy_fromiovecend
         0.55%  netperf  [kernel.kallsyms]  [k] __udp4_lib_lookup
    
     after:
      Throughput: 47185 Mbit/s
    	61.74%	netperf  [kernel.kallsyms]	[k] copy_user_generic_string
    	 2.07%	netperf  [kernel.kallsyms]	[k] prep_new_page
    	 1.98%	netperf  [kernel.kallsyms]	[k] skb_append_datato_frags
    	 1.02%	netperf  [kernel.kallsyms]	[k] sock_alloc_send_pskb
    	 0.97%	netperf  [kernel.kallsyms]	[k] enqueue_task_fair
    	 0.97%	netperf  [kernel.kallsyms]	[k] udp_sendmsg
    	 0.91%	netperf  [kernel.kallsyms]	[k] __ip_route_output_key
    	 0.88%	netperf  [kernel.kallsyms]	[k] __netif_receive_skb
    	 0.87%	netperf  [kernel.kallsyms]	[k] fib_table_lookup
    	 0.85%	netperf  [kernel.kallsyms]	[k] resched_task
    	 0.78%	netperf  [kernel.kallsyms]	[k] __udp4_lib_lookup
    	 0.77%	netperf  [kernel.kallsyms]	[k] _raw_spin_lock_irqsave
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b2111724
skbuff.c 86.8 KB