On Wed, Jun 04, 2014 at 12:52:46PM +0100, Vincent Guittot wrote:
On 4 June 2014 13:23, Morten Rasmussen morten.rasmussen@arm.com wrote:
I get:
A: 15/40 ms = 37.5% B: 20/40 ms = 50%
Schedule:
| 5 ms | 5 ms | 5 ms | 5 ms | 5 ms | 5 ms | 5 ms | 5 ms | 5 ms | A: run rq run ----------- sleeping ------------- run B: rq run rq run ---- sleeping ------------- rq
and CPU runnable will be 60% too
rq->avg.runnable_avg_sum should be 50%. You have two tasks running for 20 ms every 40 ms.
Right?
ok, i see the misunderstood. it's depends of what we mean by runnable. You take the % of time whereas i take the runnable_avg_sum/period
Right. There is a difference.
so A is on_rq 15/40 ms = 37.5% of the time which gives a runnable_avg_sum/runnable_avg_period of 47% B is on_rq 20/40 ms = 50% of the time which gives a runnable_avg_sum/runnable_avg_period of 60% and CPU has a task on its rq 20/40ms = 50% of the time which gives a runnable_avg_sum/runnable_avg_period of 60%
Yes, that seems about right.