From: Yuyang Du <yuyang.du@intel.com>
To: Boqun Feng <boqun.feng@gmail.com>
Cc: mingo@kernel.org, peterz@infradead.org,
linux-kernel@vger.kernel.org, pjt@google.com, bsegall@google.com,
morten.rasmussen@arm.com, vincent.guittot@linaro.org,
dietmar.eggemann@arm.com, umgwanakikbuti@gmail.com,
len.brown@intel.com, rafael.j.wysocki@intel.com,
arjan@linux.intel.com, fengguang.wu@intel.com
Subject: Re: [PATCH v10 6/7] sched: Provide runnable_load_avg back to cfs_rq
Date: Tue, 21 Jul 2015 08:44:01 +0800 [thread overview]
Message-ID: <20150721004400.GA28512@intel.com> (raw)
In-Reply-To: <20150721010346.GA2882@fixme-laptop.cn.ibm.com>
On Tue, Jul 21, 2015 at 09:08:07AM +0800, Boqun Feng wrote:
> Hi Yuyang,
>
> On Wed, Jul 15, 2015 at 08:04:41AM +0800, Yuyang Du wrote:
> > The cfs_rq's load_avg is composed of runnable_load_avg and blocked_load_avg.
> > Before this series, sometimes the runnable_load_avg is used, and sometimes
> > the load_avg is used. Completely replacing all uses of runnable_load_avg
> > with load_avg may be too big a leap, i.e., the blocked_load_avg is concerned
> > to result in overrated load. Therefore, we get runnable_load_avg back.
> >
> > The new cfs_rq's runnable_load_avg is improved to be updated with all of the
> > runnable sched_eneities at the same time, so the one sched_entity updated and
> > the others stale problem is solved.
> >
>
> How about tracking cfs_rq's blocked_load_avg instead of
> runnable_load_avg, because, AFAICS:
>
> cfs_rq->runnable_load_avg = se->avg.load_avg - cfs_rq->blocked_load_avg.
No, cfs_rq->runnable_load_avg = cfs_rq->avg.load_avg - cfs_rq->blocked_load_avg,
without rounding errors and the like.
> se is the corresponding sched_entity of cfs_rq. And when we need the
> runnable_load_avg, we just calculate by the expression above.
>
> This can be thought as a lazy way to update runnable_load_avg, and we
> don't need to modify __update_load_avg any more.
Not lazy at all, but adding (as of now) useless blocked_load_avg and an
extra subtraction.
Or did you forget blocked_load_avg also needs to be updated/decayed as
time elapses?
next prev parent reply other threads:[~2015-07-21 8:35 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-15 0:04 [PATCH v10 0/7] sched: Rewrite runnable load and utilization average tracking Yuyang Du
2015-07-15 0:04 ` [PATCH v10 1/7] sched: Remove rq's runnable avg Yuyang Du
2015-08-03 17:10 ` [tip:sched/core] sched/fair: " tip-bot for Yuyang Du
2015-07-15 0:04 ` [PATCH v10 2/7] sched: Rewrite runnable load and utilization average tracking Yuyang Du
2015-07-24 16:41 ` Dietmar Eggemann
2015-07-26 20:24 ` Yuyang Du
2015-08-03 17:10 ` [tip:sched/core] sched/fair: " tip-bot for Yuyang Du
2015-07-15 0:04 ` [PATCH v10 3/7] sched: Implement update_blocked_averages() for CONFIG_FAIR_GROUP_SCHED=n Yuyang Du
2015-08-03 17:11 ` [tip:sched/core] sched/fair: " tip-bot for Vincent Guittot
2015-07-15 0:04 ` [PATCH v10 4/7] sched: Init cfs_rq's sched_entity load average Yuyang Du
2015-08-03 17:11 ` [tip:sched/core] sched/fair: Init cfs_rq' s " tip-bot for Yuyang Du
2015-07-15 0:04 ` [PATCH v10 5/7] sched: Remove task and group entity load when they are dead Yuyang Du
2015-08-03 17:11 ` [tip:sched/core] sched/fair: " tip-bot for Yuyang Du
2015-07-15 0:04 ` [PATCH v10 6/7] sched: Provide runnable_load_avg back to cfs_rq Yuyang Du
2015-07-21 1:08 ` Boqun Feng
2015-07-21 0:44 ` Yuyang Du [this message]
2015-07-21 10:18 ` Boqun Feng
2015-07-21 10:29 ` Boqun Feng
2015-07-26 18:43 ` Yuyang Du
2015-07-27 3:21 ` Boqun Feng
2015-07-26 19:56 ` Yuyang Du
2015-07-27 4:04 ` Boqun Feng
2015-07-26 20:34 ` Yuyang Du
2015-07-27 5:16 ` Boqun Feng
2015-07-27 3:29 ` Boqun Feng
2015-07-22 2:19 ` Boqun Feng
2015-07-26 19:45 ` Yuyang Du
2015-08-03 17:12 ` [tip:sched/core] sched/fair: " tip-bot for Yuyang Du
2015-07-15 0:04 ` [PATCH v10 7/7] sched: Clean up load average references Yuyang Du
2015-07-24 16:41 ` Dietmar Eggemann
2015-07-26 20:31 ` Yuyang Du
2015-08-03 17:12 ` [tip:sched/core] sched/fair: " tip-bot for Yuyang Du
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=20150721004400.GA28512@intel.com \
--to=yuyang.du@intel.com \
--cc=arjan@linux.intel.com \
--cc=boqun.feng@gmail.com \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=fengguang.wu@intel.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=morten.rasmussen@arm.com \
--cc=peterz@infradead.org \
--cc=pjt@google.com \
--cc=rafael.j.wysocki@intel.com \
--cc=umgwanakikbuti@gmail.com \
--cc=vincent.guittot@linaro.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.