Re: [PATCH 05/16] sched: SCHED_DEADLINE policy implementation.

From: Peter Zijlstra
Date: Mon Apr 23 2012 - 08:22:49 EST


On Mon, 2012-04-23 at 14:13 +0200, Juri Lelli wrote:
> On 04/23/2012 01:32 PM, Peter Zijlstra wrote:
> > On Fri, 2012-04-06 at 09:14 +0200, Juri Lelli wrote:
> >> + /*
> >> + * We Keep moving the deadline away until we get some
> >> + * available runtime for the entity. This ensures correct
> >> + * handling of situations where the runtime overrun is
> >> + * arbitrary large.
> >> + */
> >> + while (dl_se->runtime<= 0) {
> >> + dl_se->deadline += dl_se->dl_deadline;
> >> + dl_se->runtime += dl_se->dl_runtime;
> >> + }
> >
> > Does gcc 'optimize' that into a division? If so, it might need special
> > glue to make it not do that.
>
> I got two adds and a jle, no div here..

Gcc is known to change such loops to something like:

if (runtime <= 0) {
tmp = 1 - runtime / dl_runtime;
deadline += tmp * dl_deadline;
runtime += tmp * dl_runtime;
}


--
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/