scheduler: compute time-average nr_running per run-queue

Compute the time-average number of running tasks per run-queue for a
trailing window of a fixed time period. The detla add/sub to the
average value is weighted by the amount of time per nr_running value
relative to the total measurement period.

Change-Id: I4b1fa8fee82a549889560ceded4b94bdb811671d
Signed-off-by: Diwakar Tundlam <dtundlam@nvidia.com>
Reviewed-on: http://git-master/r/108070
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Ryan Wong <ryanw@nvidia.com>
Tested-by: Ryan Wong <ryanw@nvidia.com>
proc: Add time-average nr_running to loadavg printout

Change-Id: I39a97308050fd36bbcf4e9b909e3087172438f8b
Signed-off-by: Alex Frid <afrid@nvidia.com>
Reviewed-on: http://git-master/r/108071
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Ryan Wong <ryanw@nvidia.com>
Tested-by: Ryan Wong <ryanw@nvidia.com>
scheduler: Re-compute time-average nr_running on read

Re-compute time-average nr_running when it is read. This would
prevent reading stalled average value if there were no run-queue
changes for a long time. New average value is returned to the reader,
but not stored to avoid concurrent writes. Light-weight sequential
counter synchronization is used to assure data consistency for
re-computing average.

Change-Id: I08de26087414d6663633c723ddfcbf1099a01ce2
Signed-off-by: Alex Frid <afrid@nvidia.com>
Reviewed-on: http://git-master/r/108072
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Ryan Wong <ryanw@nvidia.com>
Tested-by: Ryan Wong <ryanw@nvidia.com>
ARM: tegra: power: Use runnable threads average for hotplug

Sample scheduler runnable threads average in auto-hotplug work
function and use it to determine the auto-hotplug target for number
of on-line cores. Use cpu up delay as sampling period, and enforce
down delay by checking last cpu configuration change time stamp.

Bug 958978

Change-Id: I922dc9d03c653b3465c2b7bac0498aa59ae71af0
Signed-off-by: Alex Frid <afrid@nvidia.com>
Reviewed-on: http://git-master/r/108073
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Ryan Wong <ryanw@nvidia.com>
Tested-by: Ryan Wong <ryanw@nvidia.com>

Conflicts:
	arch/arm/mach-tegra/cpu-tegra3.c
Tuned the runnable threads threshold from 5/9/13 to 5/9/10 in order to improve performance

Change-Id: Iae3aa9e92388df74897c90951567325fe3d88550
Reviewed-on: http://git-master/r/108074
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Ryan Wong <ryanw@nvidia.com>
Tested-by: Ryan Wong <ryanw@nvidia.com>
Modified the hot-plug governor down_delay to be 500ms instead of 2s

Change-Id: I72d5ece9998cff57c6b88b9c7d7d1cccb1a5cb14
Reviewed-on: http://git-master/r/108154
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Ryan Wong <ryanw@nvidia.com>
Tested-by: Ryan Wong <ryanw@nvidia.com>
cpuquiet: base files

Change-Id: I611b72a2e63fffc788bc6c7594c738d5ad65e06f
Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
cpuquiet: Kconfig

Signed-off-by: Sai Charan Gurrappadi <sgurrappadi@nvidia.com>

Change-Id: I930dedaa3bf7b2c64bc61f28c3461f125cca2f44
cpuquiet: public interfaces for cpuquiet

Change-Id: Ie391d6d11fad7b76b0bf5daff67ac46663651dc0
Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
cpuquiet: driver support

Change-Id: I4f3f67d4459eeda519efdfd80e1283bef2d597e3
Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
cpuquiet: sysfs interfaces

Change-Id: Idb454f7380c48e2f4bab20e6ae51fef577b0f6c5
Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
cpuquiet: governor support

Change-Id: I05b9dedc04bb3b2ddba6202a002c1e5514ec4777
Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
cpuquiet: userspace governor

Change-Id: If9830d423b1751cbe9493eda0a85f88e7003173f
Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
cpuquiet: balanced governor

This is a port of the existing governor logic in cpu-tegra3.c.

Change-Id: Id79e6fc697dd0de85242fb2471bbed3d10101693
Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
cpuquiet: Makefile for governors

Change-Id: I33018bb5db39f2881a3defc55758681cfb1d6284
Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
ARM: Config for cpuquiet framework

Change-Id: I61b19497d88821f39cec8605f24028c7d7fda126
Signed-off-by: Sai Charan Gurrappadi <sgurrappadi@nvidia.com>
cpuquiet: Makefile for cpuquiet framework

Change-Id: Ia071b03c6073c514b99457e35ebbd65ef32a6906
Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
cpuquiet: Added cpuquiet to driver Makefile.

Change-Id: I41a722eabdca139f443964b8c6440a8bf768bd31
Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
ARM: tegra: cpuquiet driver for Tegra3

Change-Id: Id7427bab50c6e285efe76afa234435bc984fc011
Signed-off-by: Sai Charan Gurrappadi <sgurrappadi@nvidia.com>
cpuquiet: Updated balanced governor to use the runnable threads patch

The balanced governor now looks at the average number of runnable
threads when bringing cores online and offline. The balanced governor
parameters have also been updated to reflect a similar patch for
autohotplug.

Change-Id: I8dac26659ba43d95a68830c6cc268591a7f03f80
Signed-off-by: Sai Charan Gurrappadi <sgurrappadi@nvidia.com>