From: Morten Rasmussen <morten.rasmussen@arm.com>
To: Yuyang Du <yuyang.du@intel.com>
Cc: "mingo@redhat.com" <mingo@redhat.com>,
"peterz@infradead.org" <peterz@infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"pjt@google.com" <pjt@google.com>,
"bsegall@google.com" <bsegall@google.com>,
"arjan.van.de.ven@intel.com" <arjan.van.de.ven@intel.com>,
"len.brown@intel.com" <len.brown@intel.com>,
"rafael.j.wysocki@intel.com" <rafael.j.wysocki@intel.com>,
"alan.cox@intel.com" <alan.cox@intel.com>,
"mark.gross@intel.com" <mark.gross@intel.com>,
"fengguang.wu@intel.com" <fengguang.wu@intel.com>
Subject: Re: [PATCH 0/2 v4] sched: Rewrite per entity runnable load average tracking
Date: Fri, 18 Jul 2014 16:39:31 +0100 [thread overview]
Message-ID: <20140718153931.GJ8700@e103034-lin> (raw)
In-Reply-To: <1405639567-21445-1-git-send-email-yuyang.du@intel.com>
On Fri, Jul 18, 2014 at 12:26:04AM +0100, Yuyang Du wrote:
> Thanks to Morten, Ben, and Fengguang.
>
> v4 changes:
>
> - Insert memory barrier before writing cfs_rq->load_last_update_copy.
> - Fix typos.
It is quite a challenge keeping up with your revisions :) Three
revisions in five days. It takes time to go through all the changes to
understand the implications of your proposed changes.
I still haven't gotten to the bottom of everything, but this is my view
so far.
1. runnable_avg_period is removed
load_avg_contrib used to be runnable_avg_sum/runnable_avg_period scaled
by the task load weight (priority). The runnable_avg_period is replaced
by a constant in this patch set. The effect of that change is that task
load tracking no longer is more sensitive early life of the task until
it has built up some history. Task are now initialized to start out as
if they have been runnable forever (>345ms). If this assumption about
the task behavior is wrong it will take longer to converge to the true
average than it did before. The upside is that is more stable.
2. runnable_load_avg and blocked_load_avg are combined
runnable_load_avg currently represents the sum of load_avg_contrib of
all tasks on the rq, while blocked_load_avg is the sum of those tasks
not on a runqueue. It makes perfect sense to consider the sum of both
when calculating the load of a cpu, but we currently don't include
blocked_load_avg. The reason for that is the priority scaling of the
task load_avg_contrib may lead to under-utilization of cpus that
occasionally have tiny high priority task running. You can easily have a
task that takes 5% of cpu time but has a load_avg_contrib several times
larger than a default priority task runnable 100% of the time.
Another thing that might be an issue is that the blocked of a terminated
task lives on for quite a while until has decayed away.
I'm all for taking the blocked load into consideration, but this issue
has to be resolved first. Which leads me on to the next thing.
Most of the work going on around energy awareness is based on the load
tracking to estimate task and cpu utilization. It seems that most of the
involved parties think that we need an unweighted variant of the tracked
load as well as tracking the running time of a task. The latter was part
of the original proposal by pjt and Ben, but wasn't used. It seems that
unweighted runnable tracking should be fairly easy to add to your
proposal, but I don't have an overview of whether it is possible to add
running tracking. Do you think that is possible?
Morten
next prev parent reply other threads:[~2014-07-18 15:39 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-17 23:26 Yuyang Du
2014-07-17 23:26 ` [PATCH 1/2 v4] sched: Remove update_rq_runnable_avg Yuyang Du
2014-07-17 23:26 ` [PATCH 2/2 v4] sched: Rewrite per entity runnable load average tracking Yuyang Du
2014-07-18 9:43 ` Vincent Guittot
2014-07-27 17:36 ` Yuyang Du
2014-07-29 9:12 ` Vincent Guittot
2014-07-29 1:43 ` Yuyang Du
2014-07-29 13:17 ` Vincent Guittot
2014-07-29 22:27 ` Yuyang Du
2014-07-30 8:30 ` Peter Zijlstra
2014-07-30 0:40 ` Yuyang Du
2014-07-29 9:39 ` Peter Zijlstra
2014-07-29 1:53 ` Yuyang Du
2014-07-29 13:35 ` Peter Zijlstra
2014-07-29 15:55 ` Peter Zijlstra
2014-07-29 23:08 ` Yuyang Du
2014-07-31 9:40 ` Vincent Guittot
2014-07-31 9:56 ` [PATCH 2/2 v4] sched: Rewrite per entity runnable load average Vincent Guittot
2014-07-31 19:16 ` Yuyang Du
2014-08-01 9:28 ` Vincent Guittot
2014-07-28 10:48 ` [PATCH 2/2 v4] sched: Rewrite per entity runnable load average tracking Peter Zijlstra
2014-07-29 0:56 ` Yuyang Du
2014-07-29 13:15 ` Peter Zijlstra
2014-07-28 11:39 ` Peter Zijlstra
2014-07-29 1:09 ` Yuyang Du
2014-07-29 13:19 ` Peter Zijlstra
2014-07-28 12:01 ` Peter Zijlstra
2014-07-28 13:51 ` Peter Zijlstra
2014-07-28 16:58 ` bsegall
2014-07-28 17:19 ` Peter Zijlstra
2014-07-29 1:13 ` Yuyang Du
2014-07-18 15:39 ` Morten Rasmussen [this message]
2014-07-27 19:02 ` [PATCH 0/2 " Yuyang Du
2014-07-28 10:38 ` Peter Zijlstra
2014-07-29 1:17 ` Yuyang Du
2014-07-29 13:06 ` Peter Zijlstra
2014-07-30 10:13 ` Morten Rasmussen
2014-07-30 10:21 ` Peter Zijlstra
2014-07-30 10:57 ` Morten Rasmussen
2014-07-30 19:17 ` Yuyang Du
2014-07-31 8:54 ` Morten Rasmussen
2014-07-31 2:15 ` Yuyang Du
2014-07-20 5:46 ` Mike Galbraith
2014-07-27 19:34 ` Yuyang Du
2014-07-28 7:49 ` Mike Galbraith
2014-07-28 0:01 ` Yuyang Du
2014-07-28 8:55 ` Peter Zijlstra
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140718153931.GJ8700@e103034-lin \
--to=morten.rasmussen@arm.com \
--cc=alan.cox@intel.com \
--cc=arjan.van.de.ven@intel.com \
--cc=bsegall@google.com \
--cc=fengguang.wu@intel.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.gross@intel.com \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=pjt@google.com \
--cc=rafael.j.wysocki@intel.com \
--cc=yuyang.du@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®