On Tue, May 20, 2003 at 05:36:07PM -0700, David S. Miller wrote: > None of this means that slowpath should not be improved if necessary. > On the contrary, I would welcome good kernel profiling output from > someone such as sim@netnation during such stress tests. I decided to try some profiling while waiting for kernel compiles. It seems that having a full BGP table is slowing thing down a lot. I put 2.4.21-rc2 (with the new hash) on the test box. I modified juno to include a busy delay loop (to try to avoid timer aliasing throwing off the remote profile and to be short enough to generate sufficient traffic), and tuned it to leave about 30% idle CPU on the testing box. I fired up juno, ran "readprofile -r", and let it sit for a while. readprofile results: 384 do_gettimeofday 2.6667 199 ipt_route_hook 3.1094 1092 fib_lookup 3.4125 1286 ip_packet_match 3.8274 248 fib_rule_put 3.8750 3209 rt_intern_hash 4.1784 852 dst_destroy 4.8409 1923 fn_hash_lookup 6.6771 1325 kmem_cache_free 8.2812 1387 dst_alloc 9.6319 3857 tg3_interrupt 11.4792 3848 do_softirq 16.0333 7354 ip_route_input 17.0231 8814 tg3_poll 28.9934 17370 handle_IRQ_event 108.5625 26413 default_idle 412.7031 I then faked a whole slew of routing table entries to look like normal BGP routes. "ip -o route | wc -l" shows 181012 entries, which is similar to the actual routers. readprofile results: 289 do_gettimeofday 2.0069 669 fib_lookup 2.0906 158 fib_rule_put 2.4688 367 tg3_recycle_rx 2.5486 889 ip_packet_match 2.6458 2375 rt_intern_hash 3.0924 636 dst_destroy 3.6136 868 dst_alloc 6.0278 2029 tg3_interrupt 6.0387 1037 kmem_cache_free 6.4813 5364 ip_route_input 12.4167 993 default_idle 15.5156 7593 tg3_poll 24.9770 9631 handle_IRQ_event 60.1938 26552 fn_hash_lookup 92.1944 Hmm! I guess the routing table size has a slight difference on performance there. Full readprofile output available here: http://blue.netnation.com/sim/ref/ I'm not sure if this is a "good" profile or not... I can try with oprofile or something instead if that gives more useful results. I think I wrote a loadable module to dump the hash distribution a while back, but I can't remember where I put it. I'll try writing something like that again and see if there's anything interesting. Simon- - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html