[lkml]   [2010]   [Oct]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH v3 3/7] sched: throttle cfs_rq entities which exceed their local quota
    On Thu, Oct 14, 2010 at 2:12 AM, Peter Zijlstra <> wrote:
    > On Wed, 2010-10-13 at 15:34 +0900, KAMEZAWA Hiroyuki wrote:
    >> cpu.share and bandwidth control can't be used simultaneously or...
    >> is this fair ? I'm not familiar with scheduler but this allows boost this tg.
    >> Could you add a brief documentaion of a spec/feature. in the next post ?
    > Like explained, shares control the proportional distribution of time
    > between groups, bandwidth puts a limit on how much time a group can
    > take. It can cause a group to receive less than its fair share, but
    > never more.
    > There is, however, a problem with all this, and that is that all this
    > explicit idling of tasks can lead to a form of priority inversion.
    > Regular preemptive scheduling already suffers from this, but explicitly
    > idling tasks exacerbates the situation.
    > You basically get to add the longest induced idle time to all your lock
    > hold times.

    This is a concern (especially for exit starvation, since the task
    needs to be scheduled for reaping); the way throttling is enacted
    should help to mitigate the risk / starvation here. When a group
    exceeds its bandwidth we don't actively force it off the cpu, we only
    set TIF_RESCHED; this the "enforcement" of throttling until we drop
    back down through put_prev_task().

    This should mean we won't extend a semaphore wait time unless someone
    explicitly issues something a cond_resched() within it [at which point
    they are choosing a potentially arbitrary latency delay anyway,
    although this does expand it relative to the target


     \ /
      Last update: 2010-10-14 12:01    [W:0.023 / U:20.640 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site