02:54 pm - Somewhat random laptop-inspired math ponderings...
...got me playing around with spreadsheets set up with various CPU frequency scaling math splashed all over the place while I rooted around in the 'deep art' of automatic frequency scaling. And I realized something, at least from my perspective of battery-savings.
First, too many CPU-scaling systems bump the frequency too early. WAY too early. If you're not maxxing out the system (or very, VERY nearly so, 99.5% load here or better) what business do you have trying to turn up the frequency? The existing speed is obvious enough to handle the load, so why burn more power right now?
Second, many of the same systems bump the frequency down way
too late. Several defaults out there are eighty-percent being a good break-point for increasing the frequency, and twenty-percent being a good breakpoint for dropping the frequency. This, despite the fact that all major CPU's in common use today accept high-precision frequency adjustment. (Well, except under Linux. Surprisingly, there's better frequency-adjusting and voltage-control tools available for Windows than Linux, since the Kernel Folks insist on following 'the holy recommended specs' the latest BIOS chipsets report for abilities instead of the actual chipset/CPU abilities.) When you can set your frequency between 800Mhz and 2000Mhz in 100Mhz steps, the old 'two gear' CPU frequency scaling mindsets simply don't work.
Unfortunately, this is the same logic I think that drives the companies building CVT-based vehicles to make the car 'lurch' by purposefully shifting badly, and in steps to 'simulate' a normal transmission instead of getting people used to highly-effecient CVT behavior. Sure, a CVT perfectly run may not 'launch' and beat a normal transmission in the first 60 feet, but every inch after that it can blow right past most normal transmissions.
Anyways... long story short, I've figured out that (perhaps amusingly) the existing breakpoint for increasing the frequency is actually a very prime point to drop
the frequency at. And near as I've been able to figure out, check about once every ten seconds, and if you have (essentially) maxxed CPU load, don't peg the frequency all the way up, but don't only push it up one step. Generally, maxxed load means more on the way, so kick it up to around 1.5x what it currently is seems to work very well. Heavy loads tend to cause a 'blip' before the CPU frequency settles again, so it's far from perfect, but it's certainly a lot nicer on the battery.0 comments