On Fri, Feb 17, 2006 at 01:30:43PM +1100, Peter Williams wrote:
On a normal system, would either of them be moved anyway?
Possible. Because when the migration thread runs it moves the current running
task out of the processor and the checks in can_migrate_task() like
"sd->nr_balance_failed > sd->cache_nice_tries" can result in cache hot task
move to the idle package.. This is a round about way and we should not depend
on this behavior..
To fix my reported problem, we need to make sure that find_busiest_group()
doesn't find an imbalance..
I disagree. If this causes a problem with your "optimizations" then I think that you need to fix the "optimizations".
There's a rational argument (IMHO) that this patch should be applied even in the absence of the smpnice patches as it prevents active_load_balance() doing unnecessary work. If this isn't good for hypo threading then hypo threading is a special case and needs to handle it as such.
active load balance is designed only with HT optimizations in mind. And now
multi-core optimizations also use this active load balance. No one else uses
active load balance.