I am seeing a behaviour where the load variations are very frequency between 1ghz and 300mhz in a very short interval of time giving the ping-pong effect. \ Is there a way of avoiding this Also, is it possible to find out which task is causing this behaviour.
All this happens in a couple of sampling periods of ondemand.
I am not specifically familiar with the ondemand governor but have amply dealt with governor matters. On way to deal with the ping pong effect is to increase the amount of time the frequency needs to stay at a certain level before going back down. There is surely a tunable in there that you can adjust. If you go that route make sure to understand that power consumption is likely to increase.
As for knowing which task is at fault, kernelshark will give you a nice view of which task is running on the affected CPU. By experience the task that will make the frequency jump to 1GHz will also jump at you on the graphic interface.
That should be enough to get you started.
Mathieu
On 8 January 2014 13:35, Sriram V vshrirama@gmail.com wrote:
I am seeing a behaviour where the load variations are very frequency between 1ghz and 300mhz in a very short interval of time giving the ping-pong effect. \ Is there a way of avoiding this Also, is it possible to find out which task is causing this behaviour.
All this happens in a couple of sampling periods of ondemand.
-- Regards, Sriram
linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
On 9 January 2014 02:30, Mathieu Poirier mathieu.poirier@linaro.org wrote:
On 8 January 2014 13:35, Sriram V vshrirama@gmail.com wrote:
I am seeing a behaviour where the load variations are very frequency between 1ghz and 300mhz in a very short interval of time giving the ping-pong effect. \ Is there a way of avoiding this Also, is it possible to find out which task is causing this behaviour.
All this happens in a couple of sampling periods of ondemand.
I am not specifically familiar with the ondemand governor but have amply dealt with governor matters. On way to deal with the ping pong effect is to increase the amount of time the frequency needs to stay at a certain level before going back down.
These are the tunables present with ondemand governor:
struct od_dbs_tuners { unsigned int ignore_nice_load; unsigned int sampling_rate; unsigned int sampling_down_factor; unsigned int up_threshold; unsigned int powersave_bias; unsigned int io_is_busy; };
And none of them tracks the time for which you should stay at a particular freq :)
Though you can play with sampling_down_factor and up_threshold to achieve what you want. For their details, please refer: Documentation/cpu-freq/governors.txt
Please give us values of these tunables from sysfs for your case, if you aren't able to make your system better by playing with above tunables.