On 5/8/20 8:34 AM, Eric Dumazet wrote: > We currently have to adjust ipv6 route gc_thresh/max_size depending > on number of cpus on a server, this makes very little sense. > > If the kernels sets /proc/sys/net/ipv6/route/gc_thresh to 1024 > and /proc/sys/net/ipv6/route/max_size to 4096, then we better > not track the percpu dst that our implementation uses. > > Only routes not added (directly or indirectly) by the admin > should be tracked and limited. > > Signed-off-by: Eric Dumazet <eduma...@google.com> > Cc: Martin KaFai Lau <ka...@fb.com> > Cc: David Ahern <dsah...@kernel.org> > Cc: Wei Wang <wei...@google.com> > Cc: Maciej Żenczykowski <m...@google.com> > --- > net/ipv6/route.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/ipv6/route.c b/net/ipv6/route.c > index > a9072dba00f4fb0b61bce1fc0f44a3a81ba702fa..4292653af533bb641ae8571fffe45b39327d0380 > 100644 > --- a/net/ipv6/route.c > +++ b/net/ipv6/route.c > @@ -1377,7 +1377,7 @@ static struct rt6_info *ip6_rt_pcpu_alloc(const struct > fib6_result *res) > > rcu_read_lock(); > dev = ip6_rt_get_dev_rcu(res); > - pcpu_rt = ip6_dst_alloc(dev_net(dev), dev, flags); > + pcpu_rt = ip6_dst_alloc(dev_net(dev), dev, flags | DST_NOCOUNT); > rcu_read_unlock(); > if (!pcpu_rt) { > fib6_info_release(f6i); >
At this point in IPv6's evolution it seems like it can align more with IPv4 and just get rid of the dst limits completely.