[dpdk-dev] DPDK-QoS- Using un-used bandwidth within a class

Dumitrescu, Cristian cristian.dumitrescu at intel.com
Tue Oct 25 19:10:20 CEST 2016


Hi Sreenaath,

I think you are simply hitting the known and documented performance issue with using a single pipe. The hierarchical scheduler performance is optimized for many pipes (hundreds, thousands , …), not for single pipe. The rationale is that if you only needs handful of queues, you can simply use a single level class based queuing device as opposed to the hierarchical scheduler.

Are you getting any issues when using hundreds/thousands of active (i.e. with traffic going through them) pipes?

Thanks,
Cristian

From: sreenaath vasudevan [mailto:sreenaathkv at gmail.com]
Sent: Monday, October 24, 2016 8:05 AM
To: dev at dpdk.org; Dumitrescu, Cristian <cristian.dumitrescu at intel.com>
Subject: DPDK-QoS- Using un-used bandwidth within a class

Hi
I am using DPDK QoS and I find something strange. I am not sure if something is wrong with my config or my understanding of queue weights is wrong.
In my config, I am using only 1 port and 1 subport and 1 pipe. Within that pipe, I am using only the last class (C3). Port, subport and pipe are configured with 100Mbps speed.
C3 is given the entire pipe's TB rate i.e entire bandwidth in essence.
In C3, I am giving relative weights of 1:4:2:2 for the four queues q0,q1,q2,q3
When no other traffic is coming in to q0,q2,q3, I am pumping ~100Mbps in to q1. However, I am seeing only 40% of the traffic going through q1. In other words the max throughput allowed through the queue is based on its weight and the unused bandwidth is not used.
Cannot the unused bandwidth from q0,q2 and q3 be used for q1?

Note-
Following is the QoS config output spit out by DPDK in syslog



SCHED: Low level config for pipe profile 0:

token bucket: period = 10, credits per period = 1, size = 25000

Traffic classes: period = 1250000, credits per period = [0, 0, 0, 125000]

Traffic class 3 oversubscription: weight = 0

WRR cost: [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [4, 1, 2, 2]

SCHED: Low level config for subport 0:

Token bucket: period = 10, credits per period = 1, size = 25000

Traffic classes: period = 1250000, credits per period = [0, 0, 0, 125000]

Traffic class 3 oversubscription: wm min = 0, wm max = 0

--
regards
sreenaath


More information about the dev mailing list