On 03/26/2012 02:25 PM, Peter Zijlstra wrote:
On Mon, 2012-03-26 at 19:45 +0200, Andrea Arcangeli wrote:
@@ -3220,6 +3214,8 @@ need_resched:
post_schedule(rq);
+ sched_autonuma_balance();
+
sched_preempt_enable_no_resched();
if (need_resched())
goto need_resched;
I already told you, this isn't ever going to happen. You do _NOT_ put a
for_each_online_cpu() loop in the middle of schedule().
Agreed, it looks O(N), but because every CPU will be calling
it its behaviour will be O(N^2) and has the potential to
completely break systems with a large number of CPUs.
Finding a lower overhead way of doing the balancing does not
seem like an unsurmountable problem.
You also do not call stop_one_cpu(migration_cpu_stop) in schedule to
force migrate the task you just scheduled to away from this cpu. That's
retarded.
Nacked-by: Peter Zijlstra<a.p.zijlstra@xxxxxxxxx>
--
All rights reversed
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>