[PATCH] explicitly bind idle tasks

Joel Schopp jschopp at austin.ibm.com
Tue Mar 8 10:01:28 EST 2005


Nathan Lynch wrote:

> With hotplug cpu and preempt, we tend to see smp_processor_id warnings
> from idle loop code because it's always checking whether its cpu has
> gone offline.  Replacing every use of smp_processor_id with
> _smp_processor_id in all idle loop code is one solution; another way
> is explicitly binding idle threads to their cpus (the smp_processor_id
> warning does not fire if the caller is bound only to the calling cpu).
> This has the (admittedly slight) advantage of letting us know if an
> idle thread ever runs on the wrong cpu.

I also prefer explicitly binding idle threads to their cpus instead of 
replacing use of smp_processor_id with _smp_processor_id.

> 
> 
> Signed-off-by: Nathan Lynch <ntl at pobox.com>

Acked-by: Joel Schopp <jschopp at austin.ibm.com>

> 
> Index: linux-2.6.11-rc5-mm1/init/main.c
> ===================================================================
> --- linux-2.6.11-rc5-mm1.orig/init/main.c	2005-03-02 00:12:07.000000000 +0000
> +++ linux-2.6.11-rc5-mm1/init/main.c	2005-03-02 00:53:04.000000000 +0000
> @@ -638,6 +638,10 @@
>  {
>  	lock_kernel();
>  	/*
> +	 * init can run on any cpu.
> +	 */
> +	set_cpus_allowed(current, CPU_MASK_ALL);
> +	/*
>  	 * Tell the world that we're going to be the grim
>  	 * reaper of innocent orphaned children.
>  	 *
> Index: linux-2.6.11-rc5-mm1/kernel/sched.c
> ===================================================================
> --- linux-2.6.11-rc5-mm1.orig/kernel/sched.c	2005-03-02 00:12:07.000000000 +0000
> +++ linux-2.6.11-rc5-mm1/kernel/sched.c	2005-03-02 00:47:14.000000000 +0000
> @@ -4092,6 +4092,7 @@
>  	idle->array = NULL;
>  	idle->prio = MAX_PRIO;
>  	idle->state = TASK_RUNNING;
> +	idle->cpus_allowed = cpumask_of_cpu(cpu);
>  	set_task_cpu(idle, cpu);
>  
>  	spin_lock_irqsave(&rq->lock, flags);
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 




More information about the Linuxppc64-dev mailing list