Skip site navigation (1)Skip section navigation (2)
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>