Re: [RFC PATCH 01/14] sched: track the runnable average on aper-task entitiy basis

From: Peter Zijlstra
Date: Wed Feb 15 2012 - 18:37:19 EST


On Wed, 2012-02-01 at 17:38 -0800, Paul Turner wrote:
> + /*
> + * Use 1024us as the unit of measurement since it's a reasonable
> + * approximation of 1ms and fast to compute.
> + */
> + delta >>= 10;

ns -> us ?, text talks about ms, slightly confusing

> + if (!delta)
> + return 0;
> + sa->last_runnable_update = now;
> +
> + delta_w = sa->runnable_avg_period % 1024;

so delta_w is the chunk of this p we already accounted.

> + if (delta + delta_w >= 1024) {

if delta pushes us over 1024*1024 ns (~1ms) we roll a window.

> + /* period roll-over */
> + decayed = 1;
> +
> + delta_w = 1024 - delta_w;

The distance we need to reach the next window.

> + BUG_ON(delta_w > delta);

somehow reading this code took forever, this suggests clarification,
either through better variable names or more comments. Could also mean
I'm a moron and should get more sleep or so :-)
--
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/