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:sreenaat...@gmail.com]
Sent: Monday, October 24, 2016 8:05 AM
To: dev at dpdk.org; Dumitrescu, Cristian
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 = 125, 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 = 125, credits per period = [0, 0, 0, 125000]
Traffic class 3 oversubscription: wm min = 0, wm max = 0
--
regards
sreenaath