Messages in this thread | | | Date | Fri, 22 Feb 2013 10:54:16 +0100 | From | Ingo Molnar <> | Subject | Re: [RFC PATCH v3 0/3] sched: simplify the select_task_rq_fair() |
| |
* Mike Galbraith <efault@gmx.de> wrote:
> On Fri, 2013-02-22 at 09:36 +0100, Peter Zijlstra wrote: > > On Fri, 2013-02-22 at 10:37 +0800, Michael Wang wrote: > > > But that's really some benefit hardly to be estimate, especially when > > > the workload is heavy, the cost of wake_affine() is very high to > > > calculated se one by one, is that worth for some benefit we could not > > > promise? > > > > Look at something like pipe-test.. wake_affine() used to > > ensure both client/server ran on the same cpu, but then I > > think we added select_idle_sibling() and wrecked it again :/ > > Yeah, that's the absolute worst case for > select_idle_sibling(), 100% synchronous, absolutely nothing to > be gained by cross cpu scheduling. Fortunately, most tasks do > more than that, but nonetheless, select_idle_sibling() > definitely is a two faced little b*tch. I'd like to see the > evil b*tch die, but something needs to replace it's pretty > face. One thing that you can do is simply don't call it when > the context switch rate is incredible.. its job is to recover > overlap, if you're scheduling near your max, there's no win > worth the cost.
Couldn't we make the cutoff dependent on sched_migration_cost? If the wakeup comes in faster than that then don't spread.
Thanks,
Ingo
| |