Re: [PATCH] sched: modify move_tasks() to improve load balancingoutcomes

From: Peter Williams
Date: Mon Apr 17 2006 - 19:56:14 EST


Siddha, Suresh B wrote:
On Sat, Apr 15, 2006 at 10:54:45AM +1000, Peter Williams wrote:
If you have a better suggestion for how move_tasks() does its job, how about providing a patch and with supporting arguments as to why its better. If it is better then we can use it.

I think we can have a second pass(if the first pass fails to move any),
in which we will not skip those tasks which will become highest priority
on the target runqueue...

That won't solve the problem that this patch is intended to address. As a reminder the problem is that a low priority task is being moved when we would prefer a high priority task to be moved. I.e. we want to move the high priority task because it's the best one to move not because we couldn't move any tasks.

NB (ignoring races and can_migrate_task() vetoing a task being moved) there should always be a task that can be moved as the minimum value of imbalance is the average load per task of the source queue and there must be tasks whose load weight is less than or equal to the average (it's axiomatic).

To put that another way, only a change in the state of the source queue since imbalance was determined (possible because that's all done without locks) or can_migrate_task() will stop at least one task being moved.

Peter
--
Peter Williams pwil3058@xxxxxxxxxxxxxx

"Learning, n. The kind of ignorance distinguishing the studious."
-- Ambrose Bierce
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/