Messages in this thread | | | Subject | Re: [PATCH 05/16] sched: SCHED_DEADLINE policy implementation. | From | Peter Zijlstra <> | Date | Mon, 23 Apr 2012 14:22:20 +0200 |
| |
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; }
| |