12345678910111213141516171819202122232425262728293031323334 |
- From: Alexander Duyck <alexander.h.duyck@redhat.com>
- Date: Thu, 22 Jan 2015 15:51:33 -0800
- Subject: [PATCH] fib_trie: Use empty_children instead of counting empty nodes
- in stats collection
- It doesn't make much sense to count the pointers ourselves when
- empty_children already has a count for the number of NULL pointers stored
- in the tnode. As such save ourselves the cycles and just use
- empty_children.
- Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com>
- Signed-off-by: David S. Miller <davem@davemloft.net>
- ---
- --- a/net/ipv4/fib_trie.c
- +++ b/net/ipv4/fib_trie.c
- @@ -1954,16 +1954,10 @@ static void trie_collect_stats(struct tr
- hlist_for_each_entry_rcu(li, &n->list, hlist)
- ++s->prefixes;
- } else {
- - unsigned long i;
- -
- s->tnodes++;
- if (n->bits < MAX_STAT_DEPTH)
- s->nodesizes[n->bits]++;
- -
- - for (i = tnode_child_length(n); i--;) {
- - if (!rcu_access_pointer(n->child[i]))
- - s->nullpointers++;
- - }
- + s->nullpointers += n->empty_children;
- }
- }
- rcu_read_unlock();
|