Messages in this thread | | | From | Con Kolivas <> | Subject | Re: bug in sched.c:activate_task() | Date | Tue, 05 Oct 2004 16:36:10 +1000 |
| |
Ingo Molnar writes:
> > On Mon, 4 Oct 2004, Chen, Kenneth W wrote: > >> Update p->timestamp to "now" in activate_task() doesn't look right to me >> at all. p->timestamp records last time it was running on a cpu. >> activate_task shouldn't update that variable when it queues a task on >> the runqueue. > > correct, we are overriding it in schedule(): > > if (likely(prev != next)) { > next->timestamp = now; > rq->nr_switches++; > > the line your patch removes is a remnant of an earlier logic when we > timestamped tasks when they touched the runqueue. (vs. timestamping when > they actually run on a CPU.) So the patch looks good to me. Andrew, please > apply.
unsigned long long delta = now - next->timestamp;
if (next->activated == 1) delta = delta * (ON_RUNQUEUE_WEIGHT * 128 / 100) / 128;
is in schedule() before we update the timestamp, no?
Con
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |