[Thunderbolt Android Development] greenjeans:
I gotchya!

First of all, everybody should stop using speedtweak. It's a totally redundant tool, that, while not 'hurting' anybody, it is confusing everybody. And screwing up their settings...The only reason to have speedtweak is to install scriptfusion (autobot) in order to play with swap and scheduler settings.

Again, the only thing to do with speedtweak is select your scheduler (i/o, deadline, no-op, cfq, bfq, if you don't understand these, don't change anything), and create swap (not recommended or needed for th3ory roms).

In order to maximize battery life we need to decrease the voltage for each cpu slot as much as possible, set the cpu min/max to something low to prevent the cpu from ever draining much battery, and choose a governor that will keep the cpu in a lower power slot for more of the time.

In order to maximize performance we don't care about cpu slot voltage, save that the slot is stable. We also want to set the cpu min/max to the highest stable speeds, and choose a governor that ramps up cpu speed quickly.

Speedtweak is a fine tool for choosing the cpu governor, but these settings (including cpu min/max) are also available via Settings > CM Settings > Performance > CPU. This is where I control these settings.

First, the governor. I don't know that much about them, just that ondemandx is probably the most developed by the most people that do the smartest stuff. Also, It seems to keep my cpu in lower power slots more often than others, while also ramping up cpu speed quickly, which satisfies my needs for both maximum battery saving and maximum performance. YMMV, feel free to try others.

Now onto the nitty gritty. CPU min/max, and vsels.

Note: the 184320 cpu slot has been known to cause issues for some people, including excessive battery drain, lockups, and reboots. I recommend avoiding it.

Going into speedtweak and selecting 'battsaver mode' applies these settings:

184/1024 min/max

vsels:

184320: 750

245760: 825

368640: 900

768000: 1000

1024000: 1100

While these settings are nice, and an improvement over stock voltages, the whole point of vipermod is to allow us to go even lower. What we are going to do with vipermod is set our cpu max to the slot that we are adjusting vsel for, and then incrementing down the vsel while stress testing the slot at each voltage. Let me explain....

-Download quadrant standard (to use as the stress test)

-Download setCpu (optional, allows quicker access to min/max governor settings. I uninstalled it after finding my ideal vsels)

1. Set cpu to 245/245

2. run quadrant

3. open vipermod

4. hit save

5. drop that slots voltage by 25 (option 4, you have to type it all out)

6. repeat steps 2 - 5 until you get a reboot when you run quadrant.

(after the reboot, the last stable voltage for that slot is saved and running)

7. Set cpu to 245/368

8. do steps 2 - 5 until you get a reboot.

9. Set cpu to 245/768

10. rinse and repeat up to the 1024 slot.

My results (every device is different, these voltages probably aren't stable for you):

184320: 750

245760: 750

368640: 750

768000: 875

1024000: 950

1222400: 1025

1048000: 1125

Remember: in vipermod, when you hit 'save', those vsels will be set on every boot. Don't hit save until you know the slot is stable!

Funky things started happening when I wanted to try testing voltages above 1408, probably due to the extreme undervolting on the lower slots. I don't recommend going above 1408 anyways, it gets kinda pointless.

So, the only remaining thing to do is set our cpu min/max! Given that I was able to get my 368 slot down to the minimum vsel of 750, I now use that as my cpu min. I'll test today to see if that actually increases idle drain over 245 min. For the cpu max 1024 is plenty for Th3ory's roms, you will see hardly any, if any at all, noticeable difference in performance with overclocking. That said, I have found stable voltages all the way up to 1408. So, for maximum battery saving, I run 368/1024. For maximum performance, I'd run 368/1408.

EXTRA CREDIT BONUS ASSIGNMENT!

Wow, you're running a LOT of quadrants at each cpu slot...that's a lot of data on the performance of each cpu slot, and on hardware specific voltage stability....and if lots of people are going to do this? Ooohhh, I've got me a RAGING data-rection!

Your assignment, should you choose to accept it, is to record all of your quadrant scores and minimum vsels, and plot your data intelligently! maybe also post it? If we get enough people doing it, maybe one massive excel spreadsheet to rule them all...MUAH HAHAHAH...