[General Topics] tet-bundy:
interactive gov tunables

Hi,

so i finally found a document published by qualcomm with very nice description for the tunables of the interactive gov.

maybe u want to replace/add the descriptions as they are much more precise i think.

so here u go:

target_loads The CPU frequency is adjusted to achieve this load. Target_loads also accepts strings as arguments such that it can be different for different values of current frequency. For example, the string

'85 1000000:90 1700000:99’ would mean: target_loads =

85, if cur_freq < 1 GHz

90, if 1 GHz < cur_freq < 1.7 GHz

99, if cur_freq > 1.7 GHz.

The higher the target_loads value for a particular frequency, the lower the next frequency picked so that the load is achieved until the next. The lower the target_loads, the more often the governor will raise CPU speeds to bring the load below the target.

highspeed_freq The intermediate frequency to jump in case the load exceeds go_hispeed_load. If the load stays high for the amount of time specified in above_hispeed_delay, then the speed may be bumped higher.

go_highspeed_load If the load exceeds this value, then the next frequency chosen is at least hispeed.

above_highspeed_delay Keep the CPU frequency at hispeed_freq (or above) for min_sample_time before ramping up the frequency.

min_sample_time The minimum time interval to wait at any frequency before dropping to lower frequencies.

sampling_rate The sampling rate of the interactive governor. This is how often you want the kernel to look at the CPU usage and to make decisions on what to do about the frequency. (also referred to as timer_rate).

sampling_down_factor This parameter controls the rate at which the kernel makes a decision on when to decrease the frequency while running at top speed. When set to 1 (the default) decisions to reevaluate load are made at the same interval regardless of current clock speed. But when set to greater than 1 (e.g., 100) it acts as a multiplier for the scheduling interval for reevaluating load when the CPU is at its top speed due to high load. This improves performance by reducing the overhead of load evaluation and helping the CPU stay at its top speed when truly busy, rather than shifting back and forth in speed.

sync_freq feature This feature will cause a CPU frequency to stay above a particular value sync_freq) if certain conditions (determined by the two nodes up_threshold_any_cpu_freq and up_threshold_any_cpu_load) are satisfied.

sync_freq Only when both of the above conditions are satisfied will the CPU not drop below this frequency value. The higher this value, the higher the frequency to jump will be when the above conditions are satisfied.

up_threshold_any_cpu_freq If the maximum frequency across all the CPUs is higher than or equal to this frequency value, do not let the current CPU fall below sync_freq. The higher this value, the fewer the chances to go to sync_freq.

up_threshold_any_cpu_load If the maximum frequency across all the CPUs is higher than or equal to this frequency value, do not let the current CPU fall below sync_freq. The higher this value, the fewer the chances to go to sync_freq.

Hope this helps so and maybe u want to add it. was searching for a complete parameter description for quite a while... (actually i can coose some more options in my implementation, but think those are the most important).

Best regards,

Tet

P.S.: Thanks for the thread anyway. get back to this frequently!