Messages in this thread | | | Date | Fri, 2 Aug 2019 16:21:58 +0100 | From | Qais Yousef <> | Subject | Re: [PATCH 0/5] Fix FIFO-99 abuse |
| |
On 08/02/19 16:33, Peter Zijlstra wrote: > > > Also also, RR-SMP is actually broken (and nobody has cared enough to > > > bother fixing it). > > > > If you can give me enough pointers to understand the problem I might be able to > > bother with it :-) > > So the push-pull balancer we have (designed for FIFO but also applied to > RR) will only move a task if the destination CPU has a lower prio. In > the case where one CPU has 3 tasks and the other 1, and they're all the > same prio, it does nothing. For FIFO that is fine, for RR, not so much. > > Because then the one CPU will RR between 3 tasks, giving each task > 1/3rd, while the other will only run the one task.
Okay so what we need to do is keep a count of number of RR tasks on each CPU (which we already do IIRC) and take that into account in find_loweset_rq()/cpupri_find().
Let me see if I can create a test case then hack something.
Thanks
-- Qais Yousef
| |