Re: [Lse-tech] Re: [PATCH] cpusets+hotplug+preepmt broken

Dinakar Guniguntala
2005-05-18T09:20:01Z

On Sat, May 14, 2005 at 10:44:29AM -0700, Paul Jackson wrote:
> Signed-off-by: Paul Jackson <pj@sgi.com>
>
> diff -Naurp 2.6.12-rc1-mm4.orig/Documentation/cpusets.txt 2.6.12-rc1-mm4/Documentation/cpusets.txt
> --- 2.6.12-rc1-mm4.orig/Documentation/cpusets.txt 2005-05-14 10:20:27.000000000 -0700
> +++ 2.6.12-rc1-mm4/Documentation/cpusets.txt 2005-05-14 10:24:13.000000000 -0700
> @@ -252,8 +252,7 @@ in a tasks processor placement.
> There is an exception to the above. If hotplug funtionality is used
> to remove all the CPUs that are currently assigned to a cpuset,
> then the kernel will automatically update the cpus_allowed of all
> -tasks attached to CPUs in that cpuset with the online CPUs of the
> -nearest parent cpuset that still has some CPUs online. When memory
> +tasks attached to CPUs in that cpuset to allow all CPUs. When memory
> hotplug functionality for removing Memory Nodes is available, a
> similar exception is expected to apply there as well. In general,
> the kernel prefers to violate cpuset placement, over starving a task
> diff -Naurp 2.6.12-rc1-mm4.orig/kernel/sched.c 2.6.12-rc1-mm4/kernel/sched.c
> --- 2.6.12-rc1-mm4.orig/kernel/sched.c 2005-05-13 18:39:54.000000000 -0700
> +++ 2.6.12-rc1-mm4/kernel/sched.c 2005-05-14 09:06:29.000000000 -0700
> @@ -4301,7 +4301,7 @@ static void move_task_off_dead_cpu(int d
>
> /* No more Mr. Nice Guy. */
> if (dest_cpu == NR_CPUS) {
> - tsk->cpus_allowed = cpuset_cpus_allowed(tsk);
> + cpus_setall(tsk->cpus_allowed);
> dest_cpu = any_online_cpu(tsk->cpus_allowed);
>
> /*
>

This patch is fine by me. (Vatsa is on a vacation, so maybe Nathan can ack it?)
Andrew this resolves the oops I had reported earlier in the thread.

Acked-by: Dinakar Guniguntala <dino@in.ibm.com>