Re: OOM when adding ipv6 route: How to make available more per-cpu memory?

Eric Dumazet
2010-11-08T17:55:17Z

Le lundi 08 novembre 2010 à 09:45 -0800, Ben Greear a écrit :

> That helps. I'm getting all of the IP addrs set now, but
> having trouble with some of the default gateways (I have one
> routing table per interface).
>
> ./local/sbin/ip -6 route replace default via 2002:9:8::1 dev eth7#458 table 726
> RTNETLINK answers: No buffer space available
>
> dmesg is full of this:
>
> [247106.294743] ipv6: Neighbour table overflow.
>
>
> A quick look in /proc didn't show a tunable for this, but I'll
> go grub through the code.
>
> As for the route/max_size, it would be nice to see some useful kernel
> message in dmesg when this hit. Just telling the user '-ENOMEM'
> is not at all sufficient to help them figure out the problem.

Sure, patches are welcomed. Apparently nobody yet used ipv6 with so many
devices / routes, and this nobody contributed to extend limits.

>
> For that matter, why is there such a limit anyway? IPv4 doesn't appear
> to have any such limit?

There are limits for ipv4, much bigger, you probably never noticed.

/proc/sys/net/ipv4/route/gc_elasticity:8
/proc/sys/net/ipv4/route/gc_interval:60
/proc/sys/net/ipv4/route/gc_min_interval:0
/proc/sys/net/ipv4/route/gc_min_interval_ms:500
/proc/sys/net/ipv4/route/gc_thresh:131072
/proc/sys/net/ipv4/route/gc_timeout:300
/proc/sys/net/ipv4/route/max_size:2097152 <<< HERE
/proc/sys/net/ipv4/route/min_adv_mss:256
/proc/sys/net/ipv4/route/min_pmtu:552
/proc/sys/net/ipv4/route/mtu_expires:600
/proc/sys/net/ipv4/route/redirect_load:2
/proc/sys/net/ipv4/route/redirect_number:9
/proc/sys/net/ipv4/route/redirect_silence:2048

I suggest followup discussion can got to netdev only, now per-cpu it not
anymore the problem ?