lkml.org 
[lkml]   [2015]   [Sep]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH 5/6] sched/fair: Get rid of scaling utilization by capacity_orig
    Date
    Peter Zijlstra <peterz@infradead.org> writes:

    > On Tue, Sep 08, 2015 at 03:31:58PM +0100, Morten Rasmussen wrote:
    >> On Tue, Sep 08, 2015 at 02:52:05PM +0200, Peter Zijlstra wrote:
    >> > > Tricky that, LOAD_AVG_MAX very much relies on the unit being 1<<10.
    >>
    >> I don't get why LOAD_AVG_MAX relies on the util_avg shifting being
    >> 1<<10, it is just the sum of the geometric series and the upper bound of
    >> util_sum?
    >
    > It needs a 1024, it might just have been the 1024 ns we use a period
    > instead of the scale unit though.
    >
    > The LOAD_AVG_MAX is the number where adding a next element to the series
    > doesn't change the result anymore, so scaling it up will allow more
    > significant elements to the series before we bottom out, which is the _N
    > thing.
    >

    Yes, as the comments say, the 1024ns unit is arbitrary (and is an
    average of not-quite-microseconds instead of just nanoseconds to allow
    more bits to load.weight when we multiply load.weight by this number).
    In fact there are two arbitrary 1024 units here, which are technically
    unrelated and are both unrelated to SCHED_LOAD_RESOLUTION/etc - we
    operate on units of almost-microseconds and we also do decays every
    almost-millisecond.

    There appears to be a bunch of confusion in the current code around
    util_sum/util_avg which appears to using SCHED_LOAD_SCALE
    for a fixed-point percentage or something, which is at least reasonable,
    but is initializing it as scale_load_down(SCHED_LOAD_SCALE), which
    results in either initializing as 100% or .1% depending on RESOLUTION.
    This'll get clobbered on first update, but if it needs to be
    initialized, it should either get initialized to something sane or at
    least consistent.

    load_sum/load_avg appear to be scale_load_down()ed properly, and appear
    to be used as such at a quick glance.


    \
     
     \ /
      Last update: 2015-09-10 00:41    [W:4.969 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site