[dpdk-dev] Tx Queue Rate Limiting
Dan Brennan
dan at packetstorm.com
Fri Oct 10 22:43:51 CEST 2014
Hello,
I've been scouring through the code and documentation, experimenting
with various register settings, etc., for some time now and I'm still
stuck on a problem regarding tx queue rate limiting.
I have a simple packet processing application that uses three cores
similar to qos_sched (Rx, Worker, Tx). I am running on an E5-1620 v2,
using an 82599EB based NIC for the network interface. I am using DPDK
1.7.1 on Debian 7 (3.2.46 kernel).
I have modified the testpmd application to utilize multiple tx queues in
both iofwd and flowgen modes. When I start the forwarder, I observe each
queue sending packets equally. I can issue the following command to
alter the rate of each queue individually:
set port N queue X rate NEWRATE
This works well, as I have observed the updated queue transmitting fewer
(or more) packets on output (I also have measured the proportional
change in total bit rate using a Smartbits analyzer).
The problem is that my application doesn't behave the same. I have 32 Tx
queues. However, when I change the rate on one, it appears to affect the
entire interface, instead of the individual queue. I looked at both port
configs (testpmd and my application) and can't locate the discrepancy. I
even went so far as to port the testpmd port init code to my application
with the same results.
I have instrumented the ixgbe driver to dump registers whenever I update
a Tx queue, and have verified all register settings are the same when I
perform this operation in testpmd and my application. The only
difference is that q-stats for testpmd reflect the correct change in Tx
queue rate for the individual queues, while q-stats in my application
indicate all Tx queues change to the same rate.
Has anyone experienced similar behavior or have the ability to shed some
light on what I could be doing wrong? Any assistance is appreciated.
Dan
More information about the dev
mailing list