[EVO 4G Android Development] gpz1100:
I don't believe a smartass governor 'learns' anything.

From what i've read on various sites, and some interpretation, the main governors can be defined as follows

Ondemand - surges to maximum defined freq when there is any load, then slowly scales down depending on preset parameters

conservative - scales both up and down depending on load - parameters adjust the sensitivity and freq steps similar to above.

smartass - similar to conservative, but also adjusts speed based on screen status and cpu load. Similar to conservative, there are parameters that adjust these thresholds. Nothing to do with learning. When you enable smartass, the following parameters are adjustable. Looks like the thresholds for scaling up can different from those for scaling down.

Directory of S:\smartass\*

4/06/2011 21:59 <DIR> .
4/06/2011 21:59 <DIR> ..
4/06/2011 21:57 6 down_rate_us
4/06/2011 21:57 3 max_cpu_load
4/06/2011 21:57 7 max_ramp_down
4/06/2011 21:57 3 min_cpu_load
4/06/2011 21:57 7 ramp_up_step
4/06/2011 21:57 2 sample_rate_jiffies
4/06/2011 21:57 7 sleep_max_freq
4/06/2011 21:57 2 up_min_freq
37 bytes in 8 files and 2 dirs 32,768 bytes allocated

More details: https://github.com/corcor67/rMoD-sholes-omap/blob/master/drivers/cpufreq/cpufreq_smartass.c

text in italics are my own comments

============================

down_rate_us - The minimum amount of time to spend at a frequency before we can ramp down, in terms of us (microseconds).

max_cpu_load - CPU freq will be increased if measured load > max_cpu_load; in terms of % cpu load

max_ramp_down - Max frequency delta when ramping down. zero disables. When scaling down, what frequency to scale down at, in terms of Khz - similar to freq steps in conservative, but designated in terms of hz rather than % of max cpu freq

min_cpu_load - CPU freq will be decreased if measured load < min_cpu_load; measured in terms of % cpu load

ramp_up_step - Freqeuncy delta when ramping up. measured in terms of Khz - at what rate to bump up the frequency

sample_rate_jiffies - Sampling rate, I highly recommend to leave it at 2. sampling rate in terms of clock cycles - more info here http://en.wikipedia.org/wiki/Jiffy_(time)

sleep_max_freq - When sleep_max_freq>0 the frequency when suspended will be capped by this frequency. Also will wake up at max frequency of policy to minimize wakeup issues. Frequency to set cpu at when sleeping, in terms of KHz

up_min_freq - When ramping up frequency with no idle cycles jump to at least this frequency. Zero disables. Set a very high value to jump to policy max freqeuncy. In terms of KHz - seems to be set to 0 by default, so this is disabled

============================

As you can see, nothing AI about it whatsoever, just more or less a combination of conservative + profiles combined.

To find the optimum values for these parameters, one must experiment at length.

Personally, I'm using conservative + calkulin's screen off profile which i have set to drop cpu freq to 128 Mhz when screen is off.

It some time to actually find this information. Many many posts with the same information as the posts above this are being regurgitated, even if the information contained is misleading.