cpuquiet: Update averaging of nr_runnables
authorSai Charan Gurrappadi <sgurrappadi@nvidia.com>
Sat, 25 Aug 2012 01:42:36 +0000 (18:42 -0700)
committerDan Willemsen <dwillemsen@nvidia.com>
Sat, 14 Sep 2013 19:34:24 +0000 (12:34 -0700)
commit2413a06b9892c5e12a28b9127e64d9632c42dfeb
tree046bf4914878d1f16b675ae7f84cc62712bbb1ed
parenteca4ff7a2ef49b7500452acf3c3723b3cf1c06de
cpuquiet: Update averaging of nr_runnables

Doing a Exponential moving average per nr_running++/-- does not
guarantee a fixed sample rate which induces errors if there are lots of
threads being enqueued/dequeued from the rq (Linpack mt). Instead of
keeping track of the avg, the scheduler now keeps track of the integral
of nr_running and allows the readers to perform filtering on top.

Implemented a proper exponential moving average for the runnables
governor and a straight 100ms average for the balanced governor. Tweaked
the thresholds for the runnables governor to minimize latency. Also,
decreased sample_rate for the runnables governor to the absolute minimum
of 10msecs.

Updated to K3.4

Change-Id: Ia25bf8baf2a1a015ba188b2c06e551e89b16c5f8
Signed-off-by: Sai Charan Gurrappadi <sgurrappadi@nvidia.com>
Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
Reviewed-on: http://git-master/r/131147
Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com>

Rebase-Id: R7a20292e2cfb551a875962f0903647f69b78a0ab
fs/proc/loadavg.c
include/linux/sched.h
kernel/sched/core.c
kernel/sched/debug.c
kernel/sched/sched.h