[One (M7) Original Android Development] Rad ryan:
Key-In the general description you will see random symbols or smileys next to certain words. The symbols don'tmean anything, I am going to put the exact same symbol by the tunable in the detailed description that maxwen was referring to in the general description in an attempt to better help understanding.

General description :​

(courtesy of [MENTION=4683552]maxwen[/MENTION])

Well - you did it it 100% correct

Some more info

The basic idea - which comes from smartass - is the concept of an "ideal" frequency .

The following strategy is used:

1) If load is above upper-threshold ([emoji832]) and current frequency is below ideal freq ([emoji457])-> jump to ideal ([emoji457]) in one step

2) If load is above upper-threshold ([emoji832]) and current frequency is at or above ideal freq ([emoji457])->do "ramp up" steps ([emoji683]) which will include all frequencies for a specific amount of time([emoji784][emoji651]) at each freq - so compared to ondemand no "jumping" to max frequency

3) if load is below lower-threshold ([emoji839]) and current frequency is below ideal freq ([emoji457])->do "ramp down" steps ([emoji675]) which will include all frequencies for a specific amount of time([emoji802][emoji652]) at each freq

4) if load is below lower-threshold([emoji839]) and current frequency is above ideal freq([emoji457])-> jump down to ideal([emoji457]) in one step

5) if load is between upper ([emoji832]) and lower-thresholds ([emoji839]) --> stay at ideal frequency([emoji457])

All those thresholds ramp steps and frequency stepping times are

fully configurable using sysfs. By default I tried to create a good balance.

Additional to make it "snappy" smartmax has "touch poke ( [emoji117])"

So input events from the touchscreen will boost the cpu for a specific

time([emoji353][emoji117]) to a specific frequency([emoji117]).

Detailed description of Tunables​

(courtesy of me :D )

Ideal_Freq ([emoji457])

Exactly what it says. Also see general description. This is the frequency that the cpu will stay at when the avg load is between max_cpu_load([emoji832]) and min_cpu_load([emoji839]) .​

boost_duration - doesn't work on our phone

boost_freq - doesnt work and not sure how. I usually set it to same as touch boost

debug_mask - ignore this one

Down_Rate ([emoji802][emoji652])

This is only when the frequency is decreased and is the amount of time that a frequency must be at before being able to go on to the next frequency. For example, if freq at 918000 and it goes down to 810000 it must stay there for an amount of time that is equal to the down_ratebefore going to next lower freq. Decreasing this will make the cpu scale down faster and vice versa.​

up_rate ([emoji784][emoji651])

Same as down_rate except it is only used when increasing frequency. Decreasing this will make the cpu scale up faster and vice versa.​

ignore_nice

whether the cpu load counts the processes with the nice flag (background processes of high priority usually-disable if you dont care how long it takes to get background processes to finish)Also if it's disabled the cpu load is generally higher than if enable, but not by much. This is something that you just have to try and see if you like it.​

input_boost_duration([emoji353][emoji117])

how long the cpu stays at the touch_poke_freq setting before lowering/raising. Increase for performance and decrease for more battery, generally.​

io_is_busy

I'm not to sure on this one but I think that when the io(disk read/write) is busy/very active it will make the cpu more aggressivly scale. At least thats what it seems like. Enabling this setting by making set to 1 will give an increase in smoothness at the cost of some battery, sometimes more,sometimes less​

max_cpu_load ([emoji832])

This is the upper threshold maxwen talks about above. Lowering this will probably show the greatest increase in performance but at the cost battery life. I personally wouldn't go below 70 for this bc you start getting into fast battery drain territory.​

min_cpu_load ([emoji839])

This is the lower threshold maxwen talks about above. Lowering this will also increase performance at the cost of battery life. So for this and max_cpu_load it's best to find a good balance, and remember that all the loads between the two thresholds when the cpu is at ideal_freq. Between 30 - 50 is usually fine.​

min_sampling_rate

A little different than sampling_rate, its best left alone at 10000 for min​

ramp_up_during_boost

As it says but i dont think it works on our phone​

ramp_up_step ([emoji683])

how many mhz to ramp up/iincrease when the cpu decides to increase frequency. Increasing this means that the cpu will max freq faster, hence increase performance at cost of battery life.​

ramp_down_step ([emoji675])

same as ramp_up_step but for going down.​

sampling_rate

how often the cpu polls to check what the load is to decide to stay/increase/decrease freq. lower(10000 minimum) = more performance usually but cost more battery​

suspend_ideal_freq

same as ideal_freq except only when screen is off. usually best around 486000 or 594000.​

touch_poke_freq([emoji117])

when there is an input event on screen(when you touch the screen) the cpu frequency will jump to this setting. It keeps things snappy, but set it to high and it causes battery drain. Also note that this is a minimuum kind of thing meaning that on touch it will jump to this setting at a minimum but can jump higher as needed, how well this part works i dont know so set it as if you touch and it jumps only to this freq.​

Here are screenshots of some settings that you can start with and then tune it to your liking from there.

Theses are some settings for a balance between performance and battery for general use (tweak to your liking):

These are my current settings that are more battery biased. Try em if you want and tweak how you like: