• Peter Zijlstra's avatar
    sched: Optimize freq invariant accounting · dfbca41f
    Peter Zijlstra authored
    Currently the freq invariant accounting (in
    __update_entity_runnable_avg() and sched_rt_avg_update()) get the
    scale factor from a weak function call, this means that even for archs
    that default on their implementation the compiler cannot see into this
    function and optimize the extra scaling math away.
    
    This is sad, esp. since its a 64-bit multiplication which can be quite
    costly on some platforms.
    
    So replace the weak function with #ifdef and __always_inline goo. This
    is not quite as nice from an arch support PoV but should at least
    result in compile time errors if done wrong.
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Ben Segall <bsegall@google.com>
    Cc: Morten.Rasmussen@arm.com
    Cc: Paul Turner <pjt@google.com>
    Cc: Vincent Guittot <vincent.guittot@linaro.org>
    Cc: dietmar.eggemann@arm.com
    Cc: efault@gmx.de
    Cc: kamalesh@linux.vnet.ibm.com
    Cc: nicolas.pitre@linaro.org
    Cc: preeti@linux.vnet.ibm.com
    Cc: riel@redhat.com
    Link: http://lkml.kernel.org/r/20150323131905.GF23123@twins.programming.kicks-ass.netSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    dfbca41f
fair.c 215 KB