Thomas De Schampheleire wrote:

I am wondering what the difference is between the CPU_OFFLINE and
CPU_POWEROFF state, for the operating system.

Of course there is a hardware difference, i.e. the voltage is cut in
CPU_POWEROFF etc., but does this make a difference for the OS?
Is it correct that neither in CPU_OFFLINE, neither in CPU_POWEROFF
interrupts are serviced?
According to the flag description in cpuvar.h, with CPU_OFFLINE the CPU
can still service interrupts...but that's all it can do.

In practice, when you offline a CPU with something like psradm(1M), both the
CPU_OFFLINE and CPU_QUIESCED flags are set for the CPU (if the platform
allows it (see the comment in cpu_offline() just above where we call cpu_intr_disable()) which completely quiesces the CPU to where it won't have to run interrupt threads.

With CPU_POWEROFF, the CPU is off, so it can't service interrupts (and when that
flag is set, usually the CPU_QUIESCED flag is set too).

There's some platform specific stuff that the OS needs to do to make the
transition between being "quiesced" and "powered off" (which, if you've been poking around in sbd.c you've probably seen)....but from, say, the dispatcher's point of view, in both cases
the CPU is pretty much out of service.

-Eric
_______________________________________________
opensolaris-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to