• P
    sched: Fix update_cfs_load() synchronization · e33078ba
    Paul Turner 提交于
    Using cfs_rq->nr_running is not sufficient to synchronize update_cfs_load with
    the put path since nr_running accounting occurs at deactivation.
    
    It's also not safe to make the removal decision based on load_avg as this fails
    with both high periods and low shares.  Resolve this by clipping history after
    4 periods without activity.
    
    Note: the above will always occur from update_shares() since in the
    last-task-sleep-case that task will still be cfs_rq->curr when update_cfs_load
    is called.
    Signed-off-by: NPaul Turner <pjt@google.com>
    Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
    LKML-Reference: <20101115234937.933428187@google.com>
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    e33078ba
sched_fair.c 104.6 KB