Date: Mon, 19 Jan 2015 19:36:47 +0000 From: Zoltan Kiss <zoltan.kiss@linaro.org> To: net@freebsd.org Subject: ixgbe TX desc prefetch Message-ID: <54BD5CCF.8080300@linaro.org>
next in thread | raw e-mail | index | archive | help
Hi, I'm using netmap on Ubuntu 14.04 (3.13.0-44 kernel, ixgbe 3.15.1-k), and I can't max out a 10G link with pktgen : Sent 1068122462 packets, 64 bytes each, in 84.29 seconds. Speed: 12.67 Mpps Bandwidth: 6.49 Gbps (raw 8.92 Gbps) The README says "ixgbe tops at about 12.5 Mpps unless the driver prefetches tx descriptors". I've checked the actual driver code, it does a prefetch(tx_desc) in the TX completion interrupt handler, is that what you mean? Top shows ksoftirqd eats up one core while the pktgen process is around 45% My problem gets even worse when I want to use the another port on this same dual port card to do receive back the traffic (I'm sending my packets through a device I want to test for switching performance). The sending performance drops down to 9.39 Mpps (6.61 Gbps), and the receiving goes this much as well. I'm trying to bind the threads to cores with "-a 3" and so, but they don't seem to obey based on top. The TX now uses ca 50% CPU while RX is %20, but they don't seem to run on their assigned CPU. My card is an Intel 82599ES, the CPU is i5-4570 @ 3.2GHz (no HT). Maybe the fact it is a workstation CPU contributes to this problem? All suggestions welcome! Regards, Zoltan Kiss
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54BD5CCF.8080300>