• Peter Zijlstra's avatar
    sched/fair: Align PELT windows between cfs_rq and its se · f207934f
    Peter Zijlstra authored
    The PELT _sum values are a saw-tooth function, dropping on the decay
    edge and then growing back up again during the window.
    
    When these window-edges are not aligned between cfs_rq and se, we can
    have the situation where, for example, on dequeue, the se decays
    first.
    
    Its _sum values will be small(er), while the cfs_rq _sum values will
    still be on their way up. Because of this, the subtraction:
    cfs_rq->avg._sum -= se->avg._sum will result in a positive value. This
    will then, once the cfs_rq reaches an edge, translate into its _avg
    value jumping up.
    
    This is especially visible with the runnable_load bits, since they get
    added/subtracted a lot.
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    f207934f
fair.c 258 KB