Re: [PATCH] Load balancing problem in 2.6.2-mm1

From: Nick Piggin
Date: Fri Feb 06 2004 - 18:42:23 EST




Martin J. Bligh wrote:

From a later email ....

Hopefully just tending to round down more would damp it better.
*imbalance = (*imbalance + SCHED_LOAD_SCALE/2) >> SCHED_LOAD_SHIFT;
Or even remove the addition all together.


I'd side with just removing the addition alltogether ...



By that stage though, it has already passed through the
imbalance_pct filter, and with the higher precision and
averaging of previous loads, it might take a while to
get there.

Moreover, as Rick pointed out, it's particularly futile over idle cpus ;-)

I don't follow...


If CPU 7 has 1 task, and cpu 8 has 0 tasks, there's an imbalance of 1.
There is no point whatsoever in bouncing that task back and forth
between cpu 7 and 8 - it just makes things slower, and trashes the cache.
There's *no* fairness issue here.



Right, it should not be moved. I think Anton is seeing a problem
with active balancing, and not so much a problem with the imbalance
calculation though.

If CPU 8 has 2 tasks, and cpu 1 has 1 task, there's an imbalance of 1.
*If* that imbalance persists (and it probably won't, given tasks being
created, destroyed, and blocking for IO), we may want to rotate that to 1 vs 2, and then back to 2 vs 1, etc. in the interests of fairness,
even though it's slower throughput overall.


Yes, although as long as it's node local and happens a couple of
times a second you should be pretty hard pressed noticing the
difference.

-
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/