Re: [PATCH 2/4] sched/fair: Drop out incomplete current period when sched averages accrue
From: Dietmar Eggemann
Date: Thu Apr 14 2016 - 08:52:54 EST
On 13/04/16 19:44, Yuyang Du wrote:
> On Wed, Apr 13, 2016 at 05:28:18PM +0200, Vincent Guittot wrote:
[...]
> By "bailing out", you mean return without update because the delta is less
> than 1ms?
yes.
>
>>> Examples of 1 periodic task pinned to a cpu on an ARM64 system, HZ=250
>>> in steady state:
>>>
>>> (1) task runtime = 100us period = 200us
>>>
>>> pelt load/util signal
>>>
>>> 1us: 488-491
>>>
>>> 1ms: 483-534
>
> 100us/200us = 50%, so the util should center around 512, it seems in this
> regard, it is better, but the variance is undesirable.
I see. You mentioned the over-decay thing in the patch header. Is this
also why you change the contribution of the most recent period from 1002
(1024*y) to 1024?
This variance gets worse if the ratio runtime/period is further reduced
(e.g. 25us/1000us).
You can even create tasks which go stealth mode (e.g. 25us/1048us). It
shows periods of 0 load/util (~1.55s) and than massive spikes (~700 for
~300ms). The short runtime and the task period synced to 1024*1024ns
allow that we hit consecutive enqueues or dequeues for a long time even
the task might drift relative to the pelt window.
[...]