[dpdk-dev] DPDK QoS performance issue in DPDK 1.4.1.

Dumitrescu, Cristian cristian.dumitrescu at intel.com
Sat Sep 21 13:58:18 CEST 2013


Hi Jim,

When we designed the Intel DPDK QoS hierarchical scheduler, we targeted thousands of pipes per output port rather than just a couple of them, so this configuration is not exactly relevant for a performance discussion. We could take a look at your proposed configuration, but when looking at performance, I would definitely recommend enabling thousands of pipes per output port, which is closer to a realistic traffic management scenario in a telecom environment with thousands of users/subscribers, multiple traffic classes, etc.

Just in case you haven't seen this, there is a comprehensive chapter on "Quality of Service (QoS) Framework" in Intel DPDK Programmer's Guide. Section 18.2.1 has a statement on this: "The hierarchical scheduler is optimized for a large number of packet queues. When only a small number of queues are needed, message passing queues should be used instead of this block."

Looking at your profile.cfg, it is very similar to the default profile.cfg from the qos_sched example application, with a few changes. Besides setting "number of pipes per subport"  to 2 instead of 4096, you also change the subport and pipe "tc period" parameters from 10 ms and 40 ms to 10,000x more, not sure what your intention is here?

Looking at the packet loss: is it 30 packets in total or 30 packets/second? In general, a packet loss can happen from a lot of reasons, it is very difficult to point to a specific cause without having more details on your setup. The qos_sched application provides a number of statistics counters tracking packets along the way, are you able to see exactly where those packets get dropped? I would suggest to try to see which block drops the packets and then look deeper into that block to understand why.

Just to double check: what is the format of your input packets? The qos_sched application requires Ethernet frames with Q-in-Q (i.e. 2x VLAN tags) and IPv4 packets. If the input traffic does not fit the format expected by the application, then the application will not be able to work correctly. The format of the input packets is described in the "QoS Scheduler Sample Application" chapter of the Intel DPDK Sample Guide: the VLAN ID of 1st VLAN label specifies the subport ID (to be used by the traffic manager for the current packet), the VLAN ID of the 2nd VLAN label specifies the pipe ID within the subport; assuming IP destination = A.B.C.D, the 2 least significant bits of byte C specify the Traffic Class of the packet, while the 2 least significant bits of byte D specify the queue ID within the Traffic Class.

Hope this helps!

Regards,
Cristian

-----Original Message-----
From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Jim Jia
Sent: Wednesday, September 11, 2013 8:30 AM
To: dev at dpdk.org
Subject: [dpdk-dev] DPDK QoS performance issue in DPDK 1.4.1.

 Hello, everyone!
      I have a question about DPDK's QoS Library performance. These days, I am tesing  DPDK's QoS Library performance using the DPDK example, qos_sched. Before I try to do the test,  I modified profile.cfg. In my opinion,  there should be no packet dropped  by qos_sched when it is processing packets at about 3Gbps, 64bit.  However, I find qos_sched would drop a few packets (about 30) at that case. Is it normal phenomenon? Or did I do anything wrong? I am so amazed in the results. I need help. Thanks a lot!


my profile.cfg  as following:

; Port configuration
[port]
frame overhead = 24
number of subports per port = 1
number of pipes per subport = 2
queue sizes = 64 64 64 64

; Subport configuration
[subport 0]
tb rate = 1250000000           ; Bytes per second
tb size = 1250000000             ; Bytes

tc 0 rate = 1250000000         ; Bytes per second
tc 1 rate = 1250000000         ; Bytes per second
tc 2 rate = 1250000000         ; Bytes per second
tc 3 rate = 1250000000         ; Bytes per second
tc period = 100000                 ; Milliseconds

pipe 0-1 = 0                ; These pipes are configured with pipe profile 0

; Pipe configuration
[pipe profile 0]
tb rate = 1250000000               ; Bytes per second
tb size = 1250000000           ; Bytes

tc 0 rate = 1250000000             ; Bytes per second
tc 1 rate = 1250000000         ; Bytes per second
tc 2 rate = 1250000000          ; Bytes per second
tc 3 rate = 1250000000         ; Bytes per second
tc period = 400000                 ; Milliseconds

tc 3 oversubscription weight = 1

tc 0 wrr weights = 1 1 1 1
tc 1 wrr weights = 1 1 1 1
tc 2 wrr weights = 1 1 1 1
tc 3 wrr weights = 1 1 1 1

; RED params per traffic class and color (Green / Yellow / Red) [red] tc 0 wred min = 48 40 32 tc 0 wred max = 64 64 64 tc 0 wred inv prob = 10 10 10 tc 0 wred weight = 9 9 9

tc 1 wred min = 48 40 32
tc 1 wred max = 64 64 64
tc 1 wred inv prob = 10 10 10
tc 1 wred weight = 9 9 9

tc 2 wred min = 48 40 32
tc 2 wred max = 64 64 64
tc 2 wred inv prob = 10 10 10
tc 2 wred weight = 9 9 9

tc 3 wred min = 48 40 32
tc 3 wred max = 64 64 64
tc 3 wred inv prob = 10 10 10
tc 3 wred weight = 9 9 9

Jim jia
--------------------------------------------------------------
Intel Shannon Limited
Registered in Ireland
Registered Office: Collinstown Industrial Park, Leixlip, County Kildare
Registered Number: 308263
Business address: Dromore House, East Park, Shannon, Co. Clare

This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.




More information about the dev mailing list