Messages in this thread | | | Subject | Re: [patch] Re: scheduler oddity [bug?] | From | Mike Galbraith <> | Date | Mon, 09 Mar 2009 14:51:11 +0100 |
| |
On Mon, 2009-03-09 at 14:27 +0100, Peter Zijlstra wrote: > On Mon, 2009-03-09 at 14:16 +0100, Mike Galbraith wrote: > > On Mon, 2009-03-09 at 12:04 +0100, Peter Zijlstra wrote: > > > > > OK, talked a bit with Ingo, the reason you're doing is that avg_overlap > > > can easily grow stale.. I can see that happen indeed. > > > > > > So the 'perfect' thing would be a task-runtime decay, barring that the > > > preemption thing seems a sane enough hart-beat of a task. > > > > > > How does the below look to you? > > > > Other than the fact that the test for sync reject is currently > > avg_overlap > sysctl_sched_migration_cost, looks fine to me. Having it > > capped at the boundary is probably the better way to go. > > Ah, yes, and looking at update_avg() we'll also discard the lower 3 > bits, so we'll never actually reach. > > So I guess it should read something like: > > update_avg(&prev->se.avg_overlap, 2*sysctl_sched_migration_cost); > > or somesuch. > > Does it actually solve the reported problem? I've only thought about the > issue so far :-)
5977 root 20 0 3672 440 352 R 100 0.0 0:28.53 2 pipetest 5978 root 20 0 3668 180 96 S 29 0.0 0:08.27 0 pipetest
Yup, works for me. Ship it :)
-Mike
| |