aboutsummaryrefslogtreecommitdiff
path: root/net/ipv4/fib_rules.c
diff options
context:
space:
mode:
authorJarek Poplawski <jarkao2@gmail.com>2009-07-14 08:33:08 +0000
committerDavid S. Miller <davem@davemloft.net>2009-07-20 07:39:25 -0700
commitc3059477fce2d956a0bb3e04357324780c5d8eeb (patch)
treec08cd660873667268132d556c2b66d7f9725a173 /net/ipv4/fib_rules.c
parent2e477c9bd2bb6a1606e498adb53ba913378ecdf2 (diff)
ipv4: Use synchronize_rcu() during trie_rebalance()
During trie_rebalance() we free memory after resizing with call_rcu(), but large updates, especially with PREEMPT_NONE configs, can cause memory stresses, so this patch calls synchronize_rcu() in tnode_free_flush() after each sync_pages to guarantee such freeing (especially before resizing the root node). The value of sync_pages = 128 is based on Pawel Staszewski's tests as the lowest which doesn't hinder updating times. (For testing purposes there was a sysfs module parameter to change it on demand, but it's removed until we're sure it could be really useful.) The patch is based on suggestions by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reported-by: Pawel Staszewski <pstaszewski@itcare.pl> Tested-by: Pawel Staszewski <pstaszewski@itcare.pl> Signed-off-by: Jarek Poplawski <jarkao2@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/fib_rules.c')
0 files changed, 0 insertions, 0 deletions