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

Rick Lindsley
2004-02-06T22:33:37Z

We also shouldn't need load_diff, because if (avg_load <= this_load)
then imbalance will be zero, so I'll fix that up.

Are we sure imbalance will be zero? I think we still need that. We can
turn it into a single C statement if we want to be clever but what you
save in temporary variable we'd better replace in comments to make the
cleverness plain. We need there to be no "negative" numbers in the
min() statement in case max-avg is non-zero but avg-this is "negative".

Imagine loads of

cpu0 0
cpu1 0
cpu2 3
cpu3 2
cpu4 0

and we're running on cpu3.

max_load=3
avg_load=1
this_load=2

min(max-avg, avg-this) will be min(3-1,1-2) or two, and we'll choose to
try to pull two to cpu3 instead of just leaving it alone which is the
right thing to do.

Rick