[linux-pm] [PATCH 02/12] powermac: support G5 CPU hotplug

Johannes Berg johannes at sipsolutions.net
Sat Feb 10 02:39:21 EST 2007


On Fri, 2007-02-09 at 08:59 +1100, Paul Mackerras wrote:
> Johannes Berg writes:
> 
> > +#ifdef CONFIG_CPU_HOTPLUG
> > +	/* if we have fake CPU hotplug just to support suspend to disk
> > +	 * and can't really turn off a CPU, it may be taking timer interrupts
> > +	 * even when it is dead. Avoid doing anything in that case so global
> > +	 * state is not modified for and by a CPU that doesn't really exist. */
> > +	if (__get_cpu_var(cpu_state) == CPU_DEAD)
> > +		return;
> > +#endif
> 
> Are you sure this is necessary?  IIRC, the if (!cpu_is_offline(cpu)) a
> little bit further down is there to cope with this exact situation.

Yes, but we still do irq_enter() and as it happens with HZ=1000 we
almost always kick the CPU out while it's inbetween irq_enter() and
irq_exit().

You said:

> And cpu hotplug already works on G4 SMP powermacs, where we can't
> physically remove the cpu either - we just put it into sleep mode with
> interrupts disabled, which is what we would be doing on a G5 powermac
> also.

and then Benh said:

> I've always had doubts about wether SLEEP with EE off was legal and
> wouldn't actually still go out of sleep when getting an interrupt... In
> that case, at least on CPUs where the DEC acts "level" triggered, we
> need to at least reset the DEC to some sane value.

I probably should've mentioned that. I tried going into NAP with EE off
and that seemed to get me a busy loop where the CPU wasn't even napping
at all. I could have done something wrong, of course.

johannes
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20070209/c6be4021/attachment.pgp>


More information about the Linuxppc-dev mailing list