aboutsummaryrefslogtreecommitdiff
path: root/kernel/sched/sched.h
diff options
context:
space:
mode:
authorMorten Rasmussen <morten.rasmussen@arm.com>2014-09-23 15:49:09 +0100
committerJuri Lelli <juri.lelli@arm.com>2015-10-05 11:58:47 +0100
commit4c181348825256d6c397898fe20f25f012e992b9 (patch)
tree6922d294e0c756b7c8f63c51f299696909be0453 /kernel/sched/sched.h
parent5acc5d4fa2b8a4068c01b1acee9c9f5081a9be2a (diff)
FROMLIST: sched: Track blocked utilization contributions
Introduces the blocked utilization, the utilization counter-part to cfs_rq->blocked_load_avg. It is the sum of sched_entity utilization contributions of entities that were recently on the cfs_rq and are currently blocked. Combined with the sum of utilization of entities currently on the cfs_rq or currently running (cfs_rq->utilization_load_avg) this provides a more stable average view of the cpu usage. cc: Ingo Molnar <mingo@redhat.com> cc: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Morten Rasmussen <morten.rasmussen@arm.com> (am from https://patchwork.kernel.org/patch/6738641) Signed-off-by: Juri Lelli <juri.lelli@arm.com> Change-Id: Iec2608bd97b65a4806fb56f08d9e38244db83886
Diffstat (limited to 'kernel/sched/sched.h')
-rw-r--r--kernel/sched/sched.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index 16ad6a682714..ec2c3f5aff8b 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -349,11 +349,15 @@ struct cfs_rq {
* the blocked sched_entities on the rq.
* utilization_load_avg is the sum of the average running time of the
* sched_entities on the rq.
+ * utilization_blocked_avg is the utilization equivalent of
+ * blocked_load_avg, i.e. the sum of running contributions of blocked
+ * sched_entities associated with the rq.
*/
- unsigned long runnable_load_avg, blocked_load_avg, utilization_load_avg;
+ unsigned long runnable_load_avg, blocked_load_avg;
+ unsigned long utilization_load_avg, utilization_blocked_avg;
atomic64_t decay_counter;
u64 last_decay;
- atomic_long_t removed_load;
+ atomic_long_t removed_load, removed_utilization;
#ifdef CONFIG_FAIR_GROUP_SCHED
/* Required to track per-cpu representation of a task_group */