Re: [PATCH] sched: CPU hotplug race vs. set_cpus_allowed()

From: Andrew Morton
Date: Sat Jun 24 2006 - 01:24:34 EST


On Fri, 23 Jun 2006 12:16:09 +0400
Kirill Korotaev <dev@xxxxxxxxxx> wrote:

> Looks like there is a race between set_cpus_allowed()
> and move_task_off_dead_cpu().
> __migrate_task() doesn't report any err code, so
> task can be left on its runqueue if its cpus_allowed mask
> changed so that dest_cpu is not longer a possible target.
> Also, chaning cpus_allowed mask requires rq->lock being held.
>
> Signed-Off-By: Kirill Korotaev <dev@xxxxxxxxxx>
>
> Kirill
> P.S. against 2.6.17-mm1
>

That's not against 2.6.17-mm1.


> static void move_task_off_dead_cpu(int dead_cpu, struct task_struct *tsk)
> {
> - int dest_cpu;
> + runqueue_t *rq;
> + unsigned long flags;
> + int dest_cpu, res;
> cpumask_t mask;
> int force = 0;
>

Your kernel has extra goodies: the `force' stuff.

Please check that the patch which I merged is correct.
-
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/