Messages in this thread | | | Subject | Re: [PATCH 09/16] sched: normalize tg load contributions against runnable time | From | Peter Zijlstra <> | Date | Fri, 06 Jul 2012 14:23:59 +0200 |
| |
On Wed, 2012-06-27 at 19:24 -0700, Paul Turner wrote:
> + contrib = div_u64(sa->runnable_avg_sum << 12, > + sa->runnable_avg_period + 1);
> + > + /* > + * Unlike a task-entity, a group entity may be using >=1 cpu globally. > + * However, in the case that it's using <1 cpu we need to form a > + * correction term so that we contribute the same load as a task of > + * equal weight. (Global runnable time is taken as a fraction over > + * 2^12.) > + */ > + runnable_avg = atomic_read(&tg->runnable_avg); > + if (runnable_avg < (1<<12)) { > + se->avg.load_avg_contrib *= runnable_avg; > + se->avg.load_avg_contrib /= (1<<12); > + }
Did we really have to open-code a 4096 fixed point here? Couldn't we re-use some of the existing _SCALE things.. if not why 12?
| |