fib_trie: resize rework
authorJens Låås <jens.laas@its.uu.se>
Sat, 29 Aug 2009 06:57:15 +0000 (23:57 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 29 Aug 2009 06:57:15 +0000 (23:57 -0700)
commit80b71b80df14d885f7e50e115c1348398f418759
treef5b58c73d1b2ca7639a8e0513b6c68a992b05484
parent8945a808f7d5efd21fa9fb6055d2dd7887bdd9d8
fib_trie: resize rework

Here is rework and cleanup of the resize function.

Some bugs we had. We were using ->parent when we should use
node_parent(). Also we used ->parent which is not assigned by
inflate in inflate loop.

Also a fix to set thresholds to power 2 to fit halve
and double strategy.

max_resize is renamed to max_work which better indicates
it's function.

Reaching max_work is not an error, so warning is removed.
max_work only limits amount of work done per resize.
(limits CPU-usage, outstanding memory etc).

The clean-up makes it relatively easy to add fixed sized
root-nodes if we would like to decrease the memory pressure
on routers with large routing tables and dynamic routing.
If we'll need that...

Its been tested with 280k routes.

Work done together with Robert Olsson.

Signed-off-by: Jens Låås <jens.laas@its.uu.se>
Signed-off-by: Robert Olsson <robert.olsson@its.uu.se>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/fib_trie.c