Re: [patch 2/5] x86_64: CPU hotplug support.

From: Ashok Raj
Date: Thu Jun 02 2005 - 18:41:23 EST


On Thu, Jun 02, 2005 at 02:19:55PM -0600, Zwane Mwaikambo wrote:
> On Thu, 2 Jun 2005, Ashok Raj wrote:
>
> > @@ -445,8 +477,10 @@ void __cpuinit start_secondary(void)
> > /*
> > * Allow the master to continue.
> > */
> > + lock_ipi_call_lock();
> > cpu_set(smp_processor_id(), cpu_online_map);
> > mb();
> > + unlock_ipi_call_lock();
>
> What's that? Is this another smp_call_function race workaround? I thought
> there was an additional patch to avoid the broadcast.

The other patch avoids sending to offline cpu's, but we read cpu_online_map
and clear self bit in smp_call_function. If a cpu comes online, dont we
want this cpu to take part in smp_call_function?

if we dont care about this new CPU participating, and if cpu_set() is atomic
(for all NR_CPUS) we dont need to hold call_lock, otherwise we need to hold
this as well.

>
> > +#include <asm/nmi.h>
> > +/* We don't actually take CPU down, just spin without interrupts. */
> > +static inline void play_dead(void)
> > +{
> > + idle_task_exit();
> > + mb();
> > + /* Ack it */
> > + __get_cpu_var(cpu_state) = CPU_DEAD;
> > +
> > + local_irq_disable();
> > + while (1)
> > + safe_halt();
> > +}
>
> Might as well drop the local_irq_disable since safe_halt enables
> interrupts.
>

Will do. I think we could cleanup more of the cpu state before we do safe_halt.

But i think i need to look how much more state can be cleaned out.

In Ia64, we have a clear SAL handoff state, and essentially the cpu is handed
off as OS got it back to BIOS land. Althoght that might be a hard goal
i need to look at what states _must_ be cleaned out as next step.


--
Cheers,
Ashok Raj
- Open Source Technology Center
-
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/