[Asus Transformer TF700] lucius.zen:
Tweaks for Optimizing Processor Performance

Hello all,

To you I present, in all their glory, a selection of tweaks I have implemented to optimize processor performance. The following tweaks can be easily set using an init.d script. For a simple guide to writing init.d scripts see the following thread - http://xdaforums.com/showthread.php?t=2198510

I am far from being finished the process of optimization; however, the tweaks I have implemented thus far have produced positive results in various benchmark tests and everyday use. In light of the amount of time this process is taking I have decided to just release what works as it comes.

Happy Tweaking,

Lucius

Governor Tweaks:

go_maxspeed_load = 85

Improves responsiveness without hurting battery life (see midrange_go_maxspeed_load for further explanation)

max_boost = 1900000 - set to highest freq available as default does not correspond with modded freq caps

Max boost is a mechanism whose purpose is to clear a mounting qeue as quickly as possible to prevent lag and get back to idle, thus it will do its job most effectively if we give it as much juice as possible.

midrange_freq = 760000 - set as close to middle of freq table as possible

Needs to be recalibrated to reflect modded core freq caps - if core freq caps are increased midrange freq should be adjusted appropriately so that the governor knows how to control the cpu properly

midrange_go_maxspeed_load = 65

Optimal for keeping CPU load low and stable. CPU load reflects the difference between our processors current power (increased by freq and voltage - decreased by leakage) and the power needed to effectively process work qeued up by the process scheduler. When load is high the cpu is underpowered and freq is increased to avoid lag and get back to idle/freq with low voltage. The magnitude and variability of CPU load are important indicators of processor performance. As load increases instances of lag also tend to increase. If we were to graph instances of lag/stuttering and cpu load over time you would see that stuttering happens most when load is high. An unstable, or highly variable CPU load is also bad because it indicates that CPU scaling is not responsive to the demands of the process scheduler; its almost as if scaling is just a half-step too late. In this condition scaling is generally erratic, which decreases time spent idling, system stability, and efficiency. Ideally we want cpu load to be as low and stable as possible as this indicates scaling is working efficiently. Through my testing I have found that it is more efficient to adjust freq a little earlier by setting load thresholds a little lower (85/65) than it is to make adjustments later when load has already gotten relatively high. The resposiveness of our device is highly dependent on scaling efficiency. Doesnt matter how much power you have; if cpu behaviour (scaling) is miscalibrated it wont handle its workload properly and your device will feel unresponsive and laggy.

Note - To apply correctly you must remove the three lines beneath "###CPU and VM Tweaks" in sdbags 50CleanTWEAKS init.d script

Hotplug Config:

rt_config = 2 4 8

Bring cores online in a more efficient manner - less latency b/w load increase and increased core usage - greater usage of all 4 cores, improved benchmark performance and resposiveness

Note - To apply correctly you must remove the line editing rt_config (very bottom) in Hunds 99loadmodules init.d script

CPU/GPU Profiles

:

Power Save - Used for tasks with moderate to high load for extended period of time (browsing heavy websites, streaming video online, heavy multitasking, productvity, etc)

- GPU Voltage/Freq = 1425/700

- Core 1 = 1750000

- Core 2 = 1750000

- Core 3 = 1700000

- Core 4 = 1700000

Balanced - Used as lowest power profile because its set as default - just enough juice for lag-free general use - light to moderate load (light browsing, email, media consumption, etc.)

- GPU Voltage/Freq = 1425/700

- Core 1 = 1600000

- Core 2 = 1600000

- Core 3 = 1540000

- Core 4 - 1540000

Performance - Used for very short, intense workloads:

- GPU Voltage/Freq = 1425/700

- Core 1 = 1900000

- Core 2 = 1900000

- Core 3 = 1850000

- Core 4 = 1850000