summaryrefslogtreecommitdiffstats
path: root/net/ipv4/sysctl_net_ipv4.c
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@redhat.com>2014-12-31 10:57:02 -0800
committerDavid S. Miller <davem@davemloft.net>2014-12-31 18:25:55 -0500
commit21d1f11db0e2f20a549ad8322879507850544670 (patch)
treeb8e624c9b2d1426f74d39090e982037daabb2d2f /net/ipv4/sysctl_net_ipv4.c
parent12c081a5c82ef64a90906247cecfa5422962e387 (diff)
downloadop-kernel-dev-21d1f11db0e2f20a549ad8322879507850544670.zip
op-kernel-dev-21d1f11db0e2f20a549ad8322879507850544670.tar.gz
fib_trie: Remove checks for index >= tnode_child_length from tnode_get_child
For some reason the compiler doesn't seem to understand that when we are in a loop that runs from tnode_child_length - 1 to 0 we don't expect the value of tn->bits to change. As such every call to tnode_get_child was rerunning tnode_chile_length which ended up consuming quite a bit of space in the resultant assembly code. I have gone though and verified that in all cases where tnode_get_child is used we are either winding though a fixed loop from tnode_child_length - 1 to 0, or are in a fastpath case where we are verifying the value by either checking for any remaining bits after shifting index by bits and testing for leaf, or by using tnode_child_length. size net/ipv4/fib_trie.o Before: text data bss dec hex filename 15506 376 8 15890 3e12 net/ipv4/fib_trie.o After: text data bss dec hex filename 14827 376 8 15211 3b6b net/ipv4/fib_trie.o Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/sysctl_net_ipv4.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud