Re: [PATCH v3 3/7] sched: throttle cfs_rq entities which exceed theirlocal quota

From: Paul Turner
Date: Thu Oct 14 2010 - 05:59:22 EST


On Thu, Oct 14, 2010 at 2:12 AM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> 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
sched_latency_period].

>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/