RE: [PATCH iproute2-next] taprio: Add support for the SetAndHold and SetAndRelease commands
From: Jose Abreu <Jose.Abreu@synopsys.com>
Date: 2020-01-07 09:27:44
From: Jose Abreu <Jose.Abreu@synopsys.com>
Date: 2020-01-07 09:27:44
From: Murali Karicheri <redacted> Date: Jan/03/2020, 22:24:14 (UTC+00:00)
So you have one sched entry that specify SetAndHold for all remaining
queues. So this means, queue 0 will never get sent. I guess you also
support SetAndRelease so that a mix of SetAndHold followed by
SetAndRelease can be sent to enable sending from Queue 0. Is that
correct?
Something like
sched-entry H 02 300000 \ <=== 300 usec tx from Q1
sched-entry R 01 200000 <=== 300 usec tx from Q0
Just trying to understand how this is being used for real world
application.This is the command I use: # tc qdisc add dev $intf handle 100: parent root taprio \ num_tc 4 \ map 0 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 \ base-time $base \ cycle-time 1000000 \ sched-entry R 00 100000 \ sched-entry H 02 200000 \ sched-entry H 04 300000 \ sched-entry H 08 400000 \ flags 0x2 # sleep 2 # iperf3 -c <ip> -u -b 0 -t 15 & # sleep 5 # echo "Queue 3: Expected=40%, Queue 0 will now be preempted" # tperf -i <ethX> -p 3 This will basically preempt Queue 0 and flood Queue 3 with express traffic. You can find tperf utility here: https://github.com/joabreu/tperf --- Thanks, Jose Miguel Abreu