From: David S. Miller Date: Fri, 27 Feb 2015 21:37:23 +0000 (-0500) Subject: Merge branch 'fib_trie_remove_leaf_info' X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=7eb603459caf1de4ddf36c18d7ce3ebef28dde8e;p=linux-beck.git Merge branch 'fib_trie_remove_leaf_info' Alexander Duyck says: ==================== fib_trie: Remove leaf_info structure This patch set removes the leaf_info structure from the IPv4 fib_trie. The general idea is that the leaf_info structure itself only held about 6 actual bits of data, beyond that it was mostly just waste. As such we can drop the structure, move the 1 byte representing the prefix/suffix length into the fib_alias and just link it all into one list. My testing shows that this saves somewhere between 4 to 10ns depending on the type of test performed. I'm suspecting that this represents 1 to 2 L1 cache misses saved per look-up. One side effect of this change is that semantic_match_miss will now only increment once per leaf instead of once per leaf_info miss. However the stat is already skewed now that we perform a preliminary check on the leaf as a part of the look-up. I also have gone through and addressed a number of ordering issues in the first patch since I had misread the behavior of list_add_tail. I have since run some additional testing and verified the resulting lists are in the same order when combining multiple prefix length and tos values in a single leaf. ==================== Signed-off-by: David S. Miller --- 7eb603459caf1de4ddf36c18d7ce3ebef28dde8e