diff options
author | Morten Rasmussen <morten.rasmussen@arm.com> | 2014-09-23 15:49:09 +0100 |
---|---|---|
committer | Juri Lelli <juri.lelli@arm.com> | 2015-10-05 11:58:47 +0100 |
commit | 4c181348825256d6c397898fe20f25f012e992b9 (patch) | |
tree | 6922d294e0c756b7c8f63c51f299696909be0453 /kernel/sched/sched.h | |
parent | 5acc5d4fa2b8a4068c01b1acee9c9f5081a9be2a (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.h | 8 |
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 */ |