On Wed, Jun 06, 2007 at 01:19:01PM +0200, Dmitry Adamushko wrote: > >Yes this is the approach I prefer, because we burden the fast/normal > >path less that way (RT->NORMAL transition is not common). > > I don't think that rt_sched_class :: dequeue_task_rt() is in any of > such "fast pathes" that we should really care about an additional > math. operation. > > If this approach is ok, logically-wise (no side effects from a short > 'delta_exec', esp. on RT -> NORMAL).. I think it's better as it keeps > the 'sched_class' interface simpler.
I can see your point, given that we just update exec_start in dequeue_task_rt(). However the situation is slightly more complex in my patch stack, as I need to update other things during group change. Perhaps we can postpone this discussion until I post that patch stack. > >That's why I > >was considering a set_curr_task() method in fair_sched_class which will > >be invoked in __setscheduler() if the new policy of currently running > >task happens to be SCHED_NORMAL/BATCH. Alternately if the new policy of > >currently running task happens to be SCHED_FIFO (and its old policy was > >SCHED_NORMAL) we need to invoke put_prev_task() method (so that > >fair_clock etc is updated based on outgoing task's execution time in > >SCHED_NORMAL class). > > rt_sched_class :: put_prev_task() from __setscheduler() ? No, fair_sched_class :: put_prev_task() if we are transitioning from NORMAL->RT. That will update the fair_clock based on execution time of current task in fair_sched class? > But it's not > supposed to be called from here, logically-wise. You just rely on its > current behavior (which is only about updating 'exec_start' and > 'exec_sum') -- that's just bad. Maybe I misunderatood your intention > though.. -- Regards, vatsa - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/