Messages in this thread | | | Subject | Re: [patch] Re: scheduler oddity [bug?] | From | Mike Galbraith <> | Date | Sun, 15 Mar 2009 18:16:54 +0100 |
| |
On Sun, 2009-03-15 at 14:53 +0100, Balazs Scheidler wrote: > On Mon, 2009-03-09 at 18:28 +0100, Mike Galbraith wrote: > > On Mon, 2009-03-09 at 17:12 +0100, Peter Zijlstra wrote: > > > 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. > > > > Yes, and the netperf on 2 CPUs with shared cache numbers show that's > > happening. It just so happens that in the non-shared case, netperf's > > cache pain far outweighs the benefit of having more CPU available :-/ > > Any news on this? I haven't seen a patch that was actually integrated, > or I just missed something?
It's in tip, as df1c99d416500da8d26a4d78777467c53ee7689e.
-Mike
| |