"\"Oleg A. Arkhangelsky\"" <sysoleg@xxxxxxxxx> writes: Better asked on netdev. Copied here. It's unlikely to be a perf problem. You better specify what kernel version you have. > 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! -- ak@xxxxxxxxxxxxxxx -- Speaking for myself only -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html