Closed levaitamas closed 5 years ago
Okay, The BESS Scheduler Wiki page also mentions that 'The priority parameter control the priority that this node has among the children of a priority parent (a lower number means higher priority).' Oops.. my bad.
Back to qtest.bess
: there are queue_rr
(prio:0) and fast
(prio:1) tc-s in w2_root
(policy='priority'). The queue_rr
tc will be scheduled first due to its priority and never gets blocked since it is a lonely member of a round_robin
tc and has no rate_limit
or other limitation so it can eat up all the CPU and starve the fast
tc.
Setting the priority of fast
to 0 indeed solves the issue since fast
will be blocked intermittently due to its rate limitation thus queue_rr
will not get starved.
I send a fix PR soon.
Hi!
There is an interesting phenomenon in qtest.bess.
The
fast
task gets starved by thequeue_rr
task, even thoughfast
has a higher priority thanqueue_rr
.Switching priorities mitigates the starvation.
The situation seems strange since the BESS Scheduler Wiki page mentions that 'the node always schedules the child with the highest priority that's not blocked'.