Hi,
Kurdistan wrote:Only thing i found about out 0edh, al is "non existing port for delay".
It didn't work though, on vpc, my bootloader/kernel is still eating up the cpu.
halting didn't work ether, nether did PAUSE, the SSE2 instruction.
If you mean that none of these made a significant difference to CPU temperature, then that's probably what you should expect...
Most CPUs have several different power saving modes; and usually the modes that save the most power/heat have the highest latency (e.g. take longer to enter the power saving mode, and take longer to leave the power saving mode). HLT has low latency (which is important to avoid effecting IRQ latency too much) which means that most of the CPU is still running (and not much power is saved).
It's possible (likely) that the CPU supports much more aggressive power saving modes (including things like flushing all caches and turning them off, reducing the core's voltage and frequency, etc); and it's also likely that Windows uses one or more of these more aggressive power saving modes.
PAUSE isn't intended to reduce power usage at all - it's intended for improving performance with hyper-threading (where a core's resources are shared by logical CPUs). Basically it stops a tight loop running on one logical CPU from filling up the core's pipeline (and making the other logical CPU run slower).
OUT is similar - it does create a delay, but doesn't turn any of the CPU off and doesn't reduce power usage.
For all of these, HLT should save the most power (but still nowhere near the amount of power that deeper power management states, etc would save; and probably not enough to cause the CPU fan to slow down much).
To use the deeper power management states you need to mess with (chipset specific) I/O ports and/or (CPU model specific) MSRs and/or APM and/or ACPI.
Cheers,
Brendan