Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 9638
b: refs/heads/master
c: e6308be
h: refs/heads/master
v: v3
  • Loading branch information
Robert Olsson authored and David S. Miller committed Oct 4, 2005
1 parent 61bb1c6 commit 4d649db
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 87bf9c97b4b3af8dec7b2b79cdfe7bfc0a0a03b2
refs/heads/master: e6308be85afee685347fa3440bed10faaa5d6c1a
23 changes: 21 additions & 2 deletions trunk/net/ipv4/fib_trie.c
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,8 @@ static inline void check_tnode(const struct tnode *tn)

static int halve_threshold = 25;
static int inflate_threshold = 50;
static int halve_threshold_root = 15;
static int inflate_threshold_root = 25;


static void __alias_free_mem(struct rcu_head *head)
Expand Down Expand Up @@ -449,6 +451,8 @@ static struct node *resize(struct trie *t, struct tnode *tn)
int i;
int err = 0;
struct tnode *old_tn;
int inflate_threshold_use;
int halve_threshold_use;

if (!tn)
return NULL;
Expand Down Expand Up @@ -541,10 +545,17 @@ static struct node *resize(struct trie *t, struct tnode *tn)

check_tnode(tn);

/* Keep root node larger */

if(!tn->parent)
inflate_threshold_use = inflate_threshold_root;
else
inflate_threshold_use = inflate_threshold;

err = 0;
while ((tn->full_children > 0 &&
50 * (tn->full_children + tnode_child_length(tn) - tn->empty_children) >=
inflate_threshold * tnode_child_length(tn))) {
inflate_threshold_use * tnode_child_length(tn))) {

old_tn = tn;
tn = inflate(t, tn);
Expand All @@ -564,10 +575,18 @@ static struct node *resize(struct trie *t, struct tnode *tn)
* node is above threshold.
*/


/* Keep root node larger */

if(!tn->parent)
halve_threshold_use = halve_threshold_root;
else
halve_threshold_use = halve_threshold;

err = 0;
while (tn->bits > 1 &&
100 * (tnode_child_length(tn) - tn->empty_children) <
halve_threshold * tnode_child_length(tn)) {
halve_threshold_use * tnode_child_length(tn)) {

old_tn = tn;
tn = halve(t, tn);
Expand Down

0 comments on commit 4d649db

Please sign in to comment.