Messages in this thread |  | | From | bsegall@google ... | Subject | Re: [PATCH 7/7] sched: Track sched_entity usage contributions | Date | Mon, 22 Sep 2014 10:09:42 -0700 |
| |
Morten Rasmussen <morten.rasmussen@arm.com> writes:
> Adds usage contribution tracking for both task and group entities. > Maintains a non-priority scaled se->avg.usage_avg_contrib for each > sched_entity and cfs_rq.usage_util_avg sum of all entity contributions. > The latter provides a more accurate estimate of the true cpu utilization > than the existing cfs_rq.runnable_load_avg (+blocked_load_avg). > > Unlike se->avg.load_avg_contrib, se->avg.usage_avg_contrib for group > entities is the sum of se->avg.usage_avg_contrib for all entities on the > group runqueue. It is _not_ influenced in any way by the task group > h_load. Hence it is representing the actual cpu usage of the group, not > its intended load contribution which may differ significantly from the > usage on lightly utilized systems. > > The cpu usage tracking is available as cpu_rq(cpu)->cfs.usage_util_avg. > No tracking of blocked usage has been implemented.
Isn't cfs_rq->usage_util_avg basically just se->avg.usage_avg_sum * 1024 / se->avg.runnable_avg_period, where se->group_cfs_rq == cfs_rq? (and for the rq as a whole, rq->avg)
The fact that usage_util_avg doesn't track blocked usage seems more likely to be a problem than an advantage, but maybe not?
|  |