On 4/21/2016 12:03 PM, Peter Zijlstra wrote:
On Thu, Apr 21, 2016 at 04:42:13PM +0200, Peter Zijlstra wrote:
So I think that is indeed the right thing here. But looking at this
function I think there's more problems with it.
It seems to assume that if there's FIFO tasks, those will run. This is
incorrect. The FIFO task can have a lower prio than an RR task, in which
case the RR task will run.
So the whole fifo_nr_running test seems misplaced, it should go after
the rr_nr_running tests. That is, only if !rr_nr_running, can we use
fifo_nr_running like this.
A little something like so perhaps; can anybody test?
Tested-by: Chris Metcalf <[email protected]>
To be clear, I only tested that it fixed my original bug, where we weren't
kicking a remote cpu when we should have been; I have not tested that
it works properly in the presence of RR or FIFO scheduled tasks.
But this or something like it should definitely go into 4.6 before it's done.
--
Chris Metcalf, Mellanox Technologies
http://www.mellanox.com