lkml.org 
[lkml]   [2012]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 12/16] sched: refactor update_shares_cpu() -> update_blocked_avgs()
    From
    Date
    On Wed, 2012-07-11 at 17:11 -0700, Paul Turner wrote:
    > >> for_each_leaf_cfs_rq(rq, cfs_rq) {
    > >> + __update_blocked_averages_cpu(cfs_rq->tg, rq->cpu);
    > >>
    > >> + /*
    > >> + * Periodically release the lock so that a cfs_rq with many
    > >> + * children cannot hold it for an arbitrary period of time.
    > >> + */
    > >> + if (num_updates++ % 20 == 0) {
    > >> + raw_spin_unlock_irqrestore(&rq->lock, flags);
    > >> + cpu_relax();
    > >> + raw_spin_lock_irqsave(&rq->lock, flags);
    > >
    > > Gack.. that's not real pretty is it.. Esp. since we're still holding RCU
    > > lock and are thus (mostly) still not preemptable.
    > >
    > > How much of a problem was this?, the changelog is silent on this.
    >
    > So the holding of RCU about these operations is nothing new (and
    > indeed they should be much faster than before).
    >
    > As above, the bound is only for the crazy-large-numbers of cgroups
    > case where we don't want to sit on with interrupts disabled forever.
    > I suspect it wants to be larger, but picked a fairly conservative
    > number to start with since I also think it's not a big performance
    > factor either way.

    How about you leave this ugly out for now (its unrelated to the rest of
    the changes anyway).. and we can revisit this later?




    \
     
     \ /
      Last update: 2012-07-12 17:21    [W:0.026 / U:4.616 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site