lkml.org 
[lkml]   [2011]   [Aug]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [patch 08/18] sched: add support for throttling group entities
    From
    Date
    On Mon, 2011-08-08 at 23:46 +0800, Lin Ming wrote:
    > On Fri, Jul 22, 2011 at 12:43 AM, Paul Turner <pjt@google.com> wrote:
    >
    > > +static __used void throttle_cfs_rq(struct cfs_rq *cfs_rq)
    > > +{
    > > + struct rq *rq = rq_of(cfs_rq);
    > > + struct cfs_bandwidth *cfs_b = tg_cfs_bandwidth(cfs_rq->tg);
    > > + struct sched_entity *se;
    > > + long task_delta, dequeue = 1;
    > > +
    > > + se = cfs_rq->tg->se[cpu_of(rq_of(cfs_rq))];
    > > +
    > > + /* account load preceding throttle */
    > > + update_cfs_load(cfs_rq, 0);
    > > +
    > > + task_delta = cfs_rq->h_nr_running;
    > > + for_each_sched_entity(se) {
    > > + struct cfs_rq *qcfs_rq = cfs_rq_of(se);
    > > + /* throttled entity or throttle-on-deactivate */
    > > + if (!se->on_rq)
    > > + break;
    >
    > Does it mean it's possible that child se is unthrottled but parent se
    > is throttled?

    Yep..

    > I thought if parent group was throttled then its children should be
    > throttled too.
    > I may misunderstood the code, please correct me then.

    That would be costly, as throttling a parent would require throttling
    all its children (of which there can be arbitrary many).



    \
     
     \ /
      Last update: 2011-08-08 18:03    [W:4.084 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site