Eric Dumazet
0197aa38df
ipv4: rcu conversion in ip_route_output_slow
ip_route_output_slow() is enclosed in an rcu_read_lock() protected
section, so that no references are taken/released on device, thanks to
__ip_dev_find() & dev_get_by_index_rcu()
Tested with ip route cache disabled, and a stress test :
Before patch:
elapsed time :
real 1m38.347s
user 0m11.909s
sys 23m51.501s
Profile:
13788.00 22.7% ip_route_output_slow [kernel]
7875.00 13.0% dst_destroy [kernel]
3925.00 6.5% fib_semantic_match [kernel]
3144.00 5.2% fib_rules_lookup [kernel]
3061.00 5.0% dst_alloc [kernel]
2276.00 3.7% rt_set_nexthop [kernel]
1762.00 2.9% fib_table_lookup [kernel]
1538.00 2.5% _raw_read_lock [kernel]
1358.00 2.2% ip_output [kernel]
After patch:
real 1m28.808s
user 0m13.245s
sys 20m37.293s
10950.00 17.2% ip_route_output_slow [kernel]
10726.00 16.9% dst_destroy [kernel]
5170.00 8.1% fib_semantic_match [kernel]
3937.00 6.2% dst_alloc [kernel]
3635.00 5.7% rt_set_nexthop [kernel]
2900.00 4.6% fib_rules_lookup [kernel]
2240.00 3.5% fib_table_lookup [kernel]
1427.00 2.2% _raw_read_lock [kernel]
1157.00 1.8% kmem_cache_alloc [kernel]
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-09-30 21:16:06 -07:00
..
2010-09-23 14:33:39 -07:00
2010-09-23 14:33:39 -07:00
2010-09-27 22:09:57 -07:00
2010-09-27 01:03:03 -07:00
2010-09-09 22:27:33 -07:00
2010-09-23 14:33:39 -07:00
2010-09-19 12:42:34 -07:00
2010-09-21 18:05:31 -07:00
2010-08-19 00:08:30 -07:00
2010-09-29 13:25:53 -07:00
2010-09-23 14:33:39 -07:00
2010-08-16 21:06:30 -07:00
2010-08-11 17:11:28 +00:00
2010-08-11 23:03:50 -07:00
2010-09-23 14:33:39 -07:00
2010-09-23 14:33:39 -07:00
2010-05-23 23:11:07 -07:00
2010-09-30 21:16:06 -07:00
2010-09-29 13:25:52 -07:00
2010-09-23 14:33:39 -07:00
2010-06-03 03:21:52 -07:00
2010-09-23 14:33:39 -07:00
2010-09-21 18:04:47 -07:00
2010-09-16 22:38:23 -07:00
2010-09-23 14:33:39 -07:00
2010-09-27 01:03:03 -07:00
2010-05-17 23:23:14 -07:00
2010-08-31 09:51:37 -07:00
2010-08-19 00:08:30 -07:00
2010-09-30 17:57:30 -07:00
2010-09-27 01:03:03 -07:00
2010-09-23 14:33:39 -07:00
2010-09-27 01:03:03 -07:00
2010-08-12 09:51:35 -07:00
2010-09-29 13:25:53 -07:00
2010-09-27 01:03:03 -07:00
2010-09-27 01:03:03 -07:00
2010-09-23 14:33:39 -07:00
2010-09-09 22:27:33 -07:00
2010-07-12 20:21:47 -07:00
2010-05-20 21:04:44 -07:00
2010-09-27 01:03:03 -07:00
2010-09-22 13:35:51 -07:00
2010-09-20 11:11:38 -07:00
2010-06-03 20:03:40 -07:00
2010-09-14 21:42:22 -07:00
2010-08-05 17:17:51 +00:00
2010-09-08 13:46:13 -07:00
2010-05-17 23:23:14 -07:00