Subject: Re: [PATCH] powermac: support G5 CPU hotplug

From: Segher Boessenkool <[email-masked]>
Date: Thu, 3 May 2007 03:01:16 +0200

>> The difference between doze and nap is that in nap mode
>> the bus interface unit is switched off; on the 970 and
>> 970FX this means that the L2 cache has to be flushed
>> before entering nap mode (or otherwise snoops will go
>> missing in action);
>
> BZZZT... incorrect... the 970FX and MP behave the same here.

Yeah I goofed here -- cache flush is only required if
you take a CPU offline.

> There is
> only one state you can "manually" enter and it's NAP.

BZZZT... incorrect... you can "manually" switch to
all of doze, nap, and deep nap.

> Transitions
> between DOZE and NAP are automatic to handle snooping in both cases.
> Cache flushing is never needed ... unless in our case the CPU gets
> actually powered down for suspend-to-ram.

Yeah.  Or to hot-unplug it ;-)

>> the 970MP automatically transitions
>> from nap to doze mode if snoops are requested (and back
>> to nap again), so no L2 flush is required.  The 970MP
>> also has a "deep nap" mode which saves more power by
>> automatically clocking the CPU down.
>
> Also deep nap only really works on 970MP DD3 and later I think

Yes, we put that knowledge into the kernel already.

>> One more thing -- perhaps keeping the CPU in reset
>> state saves even more power?
>
> Dunno... Somebody can try... but I don't think we have access to the
> reset line on 970's..

Isn't it just a GPIO, like on older Macs?  Of course, we
cannot bring a CPU back online after doing that so it's
pretty useless I suppose.

Segher