On Thu, Aug 13, 2015 at 10:15:28AM +0800, Yuyang Du wrote: > On Thu, Aug 13, 2015 at 05:21:27PM +0900, Byungchul Park wrote: > > > > yuyang said that switched_to don't need to consider task's load because it > > can have meaningless value. but i think considering task's load is better > > than leaving it unattended at all. and we can also use switched_to if we > > consider task's load in switched_to. > > when did I say "don't need to consider..."? > > Doing more does not mean better, or just trivial. BTW, the task switched_to > does not have to be switched_from before.
Correct, there's a few corner cases we need to consider. However, I think we unconditionally call init_entity_runnable_average() on all tasks, regardless of their 'initial' sched class, so it should have a valid state. Another thing to consider is the state being very stale, suppose it started live as FAIR, ran for a bit, got switched to !FAIR by means of sys_sched_setscheduler()/sys_sched_setattr() or similar, runs for a long time and for some reason gets switched back to FAIR, we need to age and or re-init things. I _think_ we can use last_update_time for that, but I've not looked too hard. That is, age based on last_update_time, if all 0, reinit, or somesuch. The most common case of switched_from()/switched_to() is Priority Inheritance, and that typically results in very short lived stints as !FAIR and the avg data should be still accurate by the time we return. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/