> Along the same lines as the above, note this code snippet from
> try_to_wake_up:
> if (0 && !rt_task(p) && synchronous && (smp_processor_id() < p->cpu)) {
> + if (!rt_task(p) && synchronous && (smp_processor_id() > p->cpu)) {
you are right - but i have removed it completely from my current tree.
the reason is that i think, unless seeing some hard proof to the contrary,
it's not a good idea to balance from wakeups. Wakeups are high-frequency
and lightweight in nature, and despite all the idle-balancing magic we
tried in 2.4 (i wrote most of that code), there were important cases where
it failed.
so the current stategy i'd like us to try is to do 'high frequency idle
rebalancing' and 'slow frequency fairness rebalancing'. No rebalancing in
wakeup, at all. This makes wakeups simpler, faster and more scalable. (We
can also do slow rebalancing in some other, strategic places where we know
that it's the right time to push a process context to another CPU.)
Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/