Re: smp 'nice' bias support breaks scheduler behavior

From: Peter Williams
Date: Thu Jan 26 2006 - 18:34:54 EST


Con Kolivas wrote:
On Thursday 26 January 2006 21:52, Siddha, Suresh B wrote:

Con,


[PATCH] sched: implement nice support across physical cpus on SMP

I don't see imbalance calculations in find_busiest_group() take
prio_bias into account. This will result in wrong imbalance value and
will cause issues.



in 2.6.16-rc1:

find_busiest_group(....

load = __target_load(i, load_idx, idle);
else
load = __source_load(i, load_idx, idle);

where __target_load and __source_load is where we take into account prio_bias.

I'm not sure which code you're looking at, but Peter Williams is working on rewriting the smp nice balancing code in -mm at the moment so that is quite different from current linus tree.


Yes, indeed. And it would be very helpful if people interested in this topic (and that have test suites designed to test whether "niceness" is being well balanced across CPUs) could test it. This is especially the case for larger systems as I do not have ready access for testing on them.



For example on a DP system with HT, if there are three runnable processes
(simple infinite loop with same nice value), this patch is resulting in
bouncing of these 3 processes from one processor to another...Lets assume
if the 3 processes are scheduled as 2 in package-0 and 1 in package1..
Now when the busy processor on package-1 does load balance and as
imbalance doesn't take "prio_bias" into account, this will kick active
load balance on package-0.. And this is continuing for ever, resulting
in bouncing from one processor to another.

Even when the system is completely loaded and if there is an imbalance,
this patch causes wrong imabalance counts and cause unoptimized
movements.

Do you want to look into this and post a patch for 2.6.16?

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