Re: runnable tasks never making it to a runqueue where they can run?

From: Peter Zijlstra
Date: Wed Mar 07 2012 - 11:30:28 EST


On Tue, 2012-03-06 at 18:19 -0800, Roland Dreier wrote:
> Is this expected behavior?

Its not unexpected.. although I had hoped we'd not suck quite as bad.

The 'idea' is that scale_rt_power() will decrease the cpu_power of cpus
that run RT tasks and the rest of the load-balancing will then dtrt.

Clearly its not quite working.

> I can believe that we brought this on ourselves by
> misconfiguring things, but in that case it would be good to know what we could
> do to avoid this problem.

hard-affine everything.. eg. create a system cpuset and only give it
cpu23 (although cpu0 would be more typical) and run only a single task
on every other cpu.

Once you do that, it doesn't really matter if your one task is FIFO or
not, with the exception that system tasks (like ksoftirqd, kworker/n
etc..) can still run when required.

Running FIFO spinners is known to break stuff due to those system tasks
not getting run. Fixing this is somewhat non-trivial :/

Alternatively you can of course play with stuff like commit 4a6184ce


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/