OSDN Git Service

sched: Aggregate for frequency
authorSrivatsa Vaddagiri <vatsa@codeaurora.org>
Tue, 12 May 2015 09:31:15 +0000 (15:01 +0530)
committerKyle Yan <kyan@codeaurora.org>
Thu, 26 May 2016 22:28:59 +0000 (15:28 -0700)
commite6aae1c3e01868f37df31e7542c3160fd194474f
tree3042f0654c617d05884ecf9150dd511bad4cffe1
parent450ba6dd70df79333e9949af731a6b40bfa37856
sched: Aggregate for frequency

Related threads in a group could execute on different CPUs and hence
present a split-demand picture to cpufreq governor. IOW the governor
fails to see the net cpu demand of all related threads in a given
window if the threads's execution were to be split across CPUs. That
could result in sub-optimal frequency chosen in comparison to the
ideal frequency at which the aggregate work (taken up by related
threads) needs to be run.

This patch aggregates cpu execution stats in a window for all related
threads in a group. This helps present cpu busy time to governor as if
all related threads were part of the same thread and thus help select
the right frequency required by related threads. This aggregation
is done per-cluster.

Change-Id: I71e6047620066323721c6d542034ddd4b2950e7f
Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
[joonwoop@codeaurora.org: Fixed notify_migration() to hold rcu read
 lock as this version of Linux doesn't hold p->pi_lock when the
 function gets called while keeping use of rcu_access_pointer() since
 we never dereference return value.]
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
include/linux/sched.h
include/linux/sched/sysctl.h
include/trace/events/sched.h
kernel/sched/core.c
kernel/sched/fair.c
kernel/sched/sched.h
kernel/sched/sched_avg.c
kernel/sysctl.c