Re: [PATCH net-next v2] net: ipv6: avoid overhead when no custom FIB rules are installed

2017-08-08 Thread David Miller
From: Vincent Bernat 
Date: Tue,  8 Aug 2017 20:23:49 +0200

> If the user hasn't installed any custom rules, don't go through the
> whole FIB rules layer. This is pretty similar to f4530fa574df (ipv4:
> Avoid overhead when no custom FIB rules are installed).
> 
> Using a micro-benchmark module [1], timing ip6_route_output() with
> get_cycles(), with 40,000 routes in the main routing table, before this
> patch:
> 
> min=606 max=12911 count=627 average=1959 95th=4903 90th=3747 50th=1602 
> mad=821
> table=254 avgdepth=21.8 maxdepth=39
> value │ ┊count
>   600 │▒▒▒ 199
>   880 │▒▒▒  43
>  1160 │▒▒▒  48
>  1440 │▒▒▒░░░   43
>  1720 │░░░  59
>  2000 │▒▒▒  50
>  2280 │▒▒░░░26
>  2560 │▒▒░  31
>  2840 │▒▒   28
>  3120 │▒░░  17
>  3400 │▒░░░ 17
>  3680 │░ 8
>  3960 │░░   11
>  4240 │░░6
>  4520 │░░░   6
>  4800 │░░░   9
> 
> After:
> 
> min=544 max=11687 count=627 average=1776 95th=4546 90th=3585 50th=1227 
> mad=565
> table=254 avgdepth=21.8 maxdepth=39
> value │ ┊count
>   540 │201
>   800 │▒63
>  1060 │▒░   68
>  1320 │▒▒▒░░39
>  1580 │▒▒░░ 32
>  1840 │▒▒   32
>  2100 │▒▒░░░34
>  2360 │▒▒░░ 33
>  2620 │▒▒   26
>  2880 │▒░░  22
>  3140 │  9
>  3400 │░ 8
>  3660 │░ 9
>  3920 │░░8
>  4180 │░░░   8
>  4440 │░░░   8
> 
> At the frequency of the host during the bench (~ 3.7 GHz), this is
> about a 100 ns difference on the median value.
> 
> A next step would be to collapse local and main tables, as in
> 0ddcf43d5d4a (ipv4: FIB Local/MAIN table collapse).
> 
> [1]: 
> https://github.com/vincentbernat/network-lab/blob/master/lab-routes-ipv6/kbench_mod.c
> 
> Signed-off-by: Vincent Bernat 
> Reviewed-by: Jiri Pirko 

Looks great, applied, thanks!


Re: [PATCH net-next v2] net: ipv6: avoid overhead when no custom FIB rules are installed

2017-08-08 Thread David Ahern
On 8/8/17 12:23 PM, Vincent Bernat wrote:
> If the user hasn't installed any custom rules, don't go through the
> whole FIB rules layer. This is pretty similar to f4530fa574df (ipv4:
> Avoid overhead when no custom FIB rules are installed).
> 
> Using a micro-benchmark module [1], timing ip6_route_output() with
> get_cycles(), with 40,000 routes in the main routing table, before this
> patch:
...
> At the frequency of the host during the bench (~ 3.7 GHz), this is
> about a 100 ns difference on the median value.
> 
> A next step would be to collapse local and main tables, as in
> 0ddcf43d5d4a (ipv4: FIB Local/MAIN table collapse).
> 
> [1]: 
> https://github.com/vincentbernat/network-lab/blob/master/lab-routes-ipv6/kbench_mod.c
> 
> Signed-off-by: Vincent Bernat 
> Reviewed-by: Jiri Pirko 
> ---
>  include/net/netns/ipv6.h |  1 +
>  net/ipv6/fib6_rules.c| 40 +++-
>  net/ipv6/route.c |  1 +
>  3 files changed, 29 insertions(+), 13 deletions(-)
> 

LGTM.

Acked-by: David Ahern