Race To Idle works extremely well in a batch type situation where there is
not going to be any work to do after you finish what you have.
It doesn't work quite as well if you are going to have new work to do in
the near future.
You cannot power down the entire machine if you have to look for user
input.
It takes time (and power) to shut down and start back up, if you are going
to have more work to do before you can make the complete cycle (and save
more power than it costs to make the transitions), it's best to stay at
full power, even if you are idle.
As an example, video/audio playback.
This requires relativly little cpu, but it needs it frequently (to keep
the hardware buffers filled), and you cannot power down even when the cpu
is idle.
But you could save power by disabling cores, switching to a slower clock
speed, etc while still having one core remaining awake all the time.
The key is to look at what you are waiting for. If you are just waiting
for the processing to finish, race to idle is great. However if you are
waiting for the outside world or for a clock tick you need to look into
the exact situation more closely.
David Lang
--