|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 09 of 10] arm: SMP CPU shutdown
On Thu, 2012-02-23 at 17:40 +0000, Tim Deegan wrote:
> # HG changeset patch
> # User Tim Deegan <tim@xxxxxxx>
> # Date 1330018799 0
> # Node ID a78bc9b8421492e0545c6d52c7a32b9de9737d61
> # Parent d35b52e5fde829dfbaf3da73e0716d004faded2f
> arm: SMP CPU shutdown
>
> For completeness, also implelent the CPU shutdown path.
Does something free the init_stack for a CPU as it goes down?
Alternatively the bring up path could reuse it if the CPU came back but
we don't seem to do that either.
> Signed-off-by: TIm Deegan <tim@xxxxxxx>
Typo here.
[...]
> + /* It's now safe to remove this processor from the online map */
> + cpumask_clear_cpu(cpu, &cpu_online_map);
> +
> + if ( cpu_disable_scheduler(cpu) )
> + BUG();
> + mb();
> +
> + /* Return to caller; eventually the IPI mecahnism will unwind and the
mechanism
> + * scheduler will drop to the idle loop, which will call stop_cpu(). */
> +}
> +
> +void stop_cpu(void)
> +{
> + local_irq_disable();
> + cpu_is_dead = 1;
Do we lock this variable? What stops multiple CPUs coming down at once?
> + /* Make sure the write happens before we sleep forever */
> + dsb();
> + isb();
> + while ( 1 )
> + asm volatile("wfi");
> }
>
> /* Bring up a remote CPU */
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |