xfrm: Let the flowcache handle its size by default.
authorSteffen Klassert <steffen.klassert@secunet.com>
Tue, 29 Sep 2015 09:40:49 +0000 (11:40 +0200)
committerSteffen Klassert <steffen.klassert@secunet.com>
Tue, 29 Sep 2015 09:44:16 +0000 (11:44 +0200)
commitc386578f1cdb4dac230395a951f88027f64346e3
tree8e8442a599588ae8876e2d0dc0975602ab0dbd69
parent8a4683a5e06efda7e1f327213678d4dcafc0d894
xfrm: Let the flowcache handle its size by default.

The xfrm flowcache size is limited by the flowcache limit
(4096 * number of online cpus) and the xfrm garbage collector
threshold (2 * 32768), whatever is reached first. This means
that we can hit the garbage collector limit only on systems
with more than 16 cpus. On such systems we simply refuse
new allocations if we reach the limit, so new flows are dropped.
On syslems with 16 or less cpus, we hit the flowcache limit.
In this case, we shrink the flow cache instead of refusing new
flows.

We increase the xfrm garbage collector threshold to INT_MAX
to get the same behaviour, independent of the number of cpus.

The xfrm garbage collector threshold can still be set below
the flowcache limit to reduce the memory usage of the flowcache.

Tested-by: Dan Streetman <dan.streetman@canonical.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Documentation/networking/ip-sysctl.txt
net/ipv4/xfrm4_policy.c
net/ipv6/xfrm6_policy.c