• P
    sched: Avoid expensive initial update_cfs_load() · f07333bf
    Paul Turner 提交于
    Since cfs->{load_stamp,load_last} are zero-initalized the initial load update
    will consider the delta to be 'since the beginning of time'.
    
    This results in a lot of pointless divisions to bring this large period to be
    within the sysctl_sched_shares_window.
    
    Fix this by initializing load_stamp to be 1 at cfs_rq initialization, this
    allows for an initial load_stamp > load_last which then lets standard idle
    truncation proceed.
    
    We avoid spinning (and slightly improve consistency) by fixing delta to be
    [period - 1] in this path resulting in a slightly more predictable shares ramp.
    (Previously the amount of idle time preserved by the overflow would range between
    [period/2,period-1].)
    Signed-off-by: NPaul Turner <pjt@google.com>
    Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
    LKML-Reference: <20110122044852.102126037@google.com>
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    f07333bf
sched.c 223.0 KB