Re: [PATCH, 2.6.9] improved load_balance() tolerance for pinned tasks

From: Ingo Molnar
Date: Wed Oct 20 2004 - 15:13:23 EST



* John Hawkes <hawkes@xxxxxxxxxxx> wrote:

> A large number of processes that are pinned to a single CPU results in
> every other CPU's load_balance() seeing this overloaded CPU as "busiest",
> yet move_tasks() never finds a task to pull-migrate. This condition
> occurs during module unload, but can also occur as a denial-of-service
> using sys_sched_setaffinity(). Several hundred CPUs performing this
> fruitless load_balance() will livelock on the busiest CPU's runqueue
> lock. A smaller number of CPUs will livelock if the pinned task count
> gets high. This simple patch remedies the more common first problem:
> after a move_tasks() failure to migrate anything, the balance_interval
> increments. Using a simple increment, vs. the more dramatic doubling of
> the balance_interval, is conservative and yet also effective.
>
> John Hawkes
>
>
> Signed-off-by: John Hawkes <hawkes@xxxxxxx>

looks good to me.

Acked-by: Ingo Molnar <mingo@xxxxxxx>

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