Messages in this thread | | | Subject | Re: [patch v3] sched: fix select_idle_sibling() induced bouncing | From | Peter Zijlstra <> | Date | Mon, 11 Jun 2012 19:22:11 +0200 |
| |
On Mon, 2012-06-11 at 18:57 +0200, Mike Galbraith wrote:
> Traversing an entire package is not only expensive, it also leads to tasks > bouncing all over a partially idle and possible quite large package. Fix > that up by assigning a 'buddy' CPU to try to motivate. Each buddy may try > to motivate that one other CPU, if it's busy, tough, it may then try it's > SMT sibling, but that's all this optimization is allowed to cost. > > Sibling cache buddies are cross-wired to prevent bouncing. > > Signed-off-by: Mike Galbraith <efault@gmx.de>
The patch could do with a little comment on how you achieve the cross-wiring because staring at the code I go cross-eyed again ;-)
Anyway, I think I'll grab it since nobody seems to have any objections and the numbers seem good.
PJT any progress on your load-tracking stuff? Arjan is interested in the avg runtime estimation it has to make the whole wake an idle thing conditional on.
| |