On Sat, 12 Jan 2008 12:16:13 +0100 Eric Dumazet <[EMAIL PROTECTED]> wrote:
> Stephen Hemminger a écrit : > > Make FIB TRIE go through sparse checker without warnings. > > > > Signed-off-by: Stephen Hemminger <[EMAIL PROTECTED]> > > Hi Stephen > > While reviewing your patches (and fib code) I had some questions : > > 1) I was wondering isn't trie_collect_stats() a potential cpu hog > (big latency) ? > > 2) struct tnode layout > If tnode->bits is large enough, we allocate a big area > of memory but roughly use only first half of it. > We could use a better scheme with an extra indirection. For small > nodes, we use space right after tnode, but for big nodes, we allocate > a power of two set of pages, to exactly match the memory need. > > 3) 'pos' and 'bits' fields of 'struct tnode' might be converted to > plain uchar, instead of 5-bits fields, to reduce complexity for > generated code. > > 4) full_children & empty_children being 'unsigned short', > we probably are limited to 2^15 elements, but I could not > find this limit enforced somewhere. > > [FIB]: Reduce text size of net/ipv4/fib_trie.o > > In struct tnode, we use two fields of 5 bits for 'pos' and 'bits'. > Switching to plain 'unsigned char' (8 bits) take the same space > because of compiler alignments, and reduce text size by 435 bytes > on i386. > > On i386 : > $ size net/ipv4/fib_trie.o.before_patch net/ipv4/fib_trie.o > text data bss dec hex filename > 13714 4 64 13782 35d6 net/ipv4/fib_trie.o.before > 13279 4 64 13347 3423 net/ipv4/fib_trie.o > > Signed-off-by: Eric Dumazet <[EMAIL PROTECTED]> > I agree they should not have been bitfields in the first place. -- Stephen Hemminger <[EMAIL PROTECTED]> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html