Hello, I'm profiling Linux IP packet forwarding performance. In common case I see this functions eating most of CPU cycles.
13735.00 22.5% build_skb 5138.00 8.4% ipt_do_table 4750.00 7.8% fib_table_lookup 3519.00 5.8% ixgbe_clean_rx_irq 2836.00 4.6% nf_iterate 1530.00 2.5% dev_queue_xmit Looks good. But accidentally I run tcpdump program on one of the NICs related to my test. After killing tcpdump I see that top is different: 6362.00 10.3% fib_table_lookup 6227.00 10.1% ipt_do_table 4300.00 7.0% ixgbe_clean_rx_irq 3771.00 6.1% nf_iterate 3284.00 5.3% build_skb 2179.00 3.5% ixgbe_xmit_frame_ring Dramatic change in build_skb() cpu cycles. But tcpdump is not active anymore. More than this, if I stop pktgen on traffic generator PC for a few seconds and start it again without any other changes, I see that build_skb() is top offender again. Running tcpdump again and killing it move fib_table_lookup() or ipt_do_table() (they are pretty same in cpu cycles) to the top. So this behavior is reproducible. I just have no sane explanation to such strange behavior. Maybe someone have? Thank you! -- To unsubscribe from this list: send the line "unsubscribe linux-perf-users" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
