lkml.org 
[lkml]   [2009]   [Mar]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [patch] Re: scheduler oddity [bug?]
From
Date
On Mon, 2009-03-09 at 16:30 +0100, Mike Galbraith wrote:
> +static void put_prev_task(struct rq *rq, struct task_struct *prev)
> +{
> + if (prev->state == TASK_RUNNING) {
> + u64 runtime = prev->se.sum_exec_runtime;
> +
> + runtime -= prev->se.prev_sum_exec_runtime;
> + runtime = min_t(u64, runtime, 2*sysctl_sched_migration_cost);
> +
> + /*
> + * In order to avoid avg_overlap growing stale when we are
> + * indeed overlapping and hence not getting put to sleep, grow
> + * the avg_overlap on preemption.
> + */
> + update_avg(&prev->se.avg_overlap, runtime);
> + }
> + prev->sched_class->put_prev_task(rq, prev);
> +}

Right, so we both found it worked quite well, I'm still slightly puzzled
but it.

If something gets preempted a lot and will therefore have short runtimes
it will be seen as sync even though it might not at all be.

Then again, it its preempted that much, it won't be likely to obtain a
large cache footprint either...

hohumm



\
 
 \ /
  Last update: 2009-03-09 17:15    [from the cache]
©2003-2011 Jasper Spaans