From: Yuyang Du <yuyang.du@intel.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Paul Turner <pjt@google.com>, Ingo Molnar <mingo@kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
Benjamin Segall <bsegall@google.com>,
Morten Rasmussen <morten.rasmussen@arm.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Matt Fleming <matt@codeblueprint.co.uk>,
umgwanakikbuti@gmail.com
Subject: Re: [RESEND PATCH 2/2] sched/fair: Optimize __update_sched_avg()
Date: Fri, 31 Mar 2017 02:50:02 +0800 [thread overview]
Message-ID: <20170330185002.GC16440@ydu19desktop> (raw)
In-Reply-To: <20170330134658.tobwqu3i5kvv64ug@hirez.programming.kicks-ass.net>
On Thu, Mar 30, 2017 at 03:46:58PM +0200, Peter Zijlstra wrote:
> On Thu, Mar 30, 2017 at 02:16:58PM +0200, Peter Zijlstra wrote:
> > On Thu, Mar 30, 2017 at 04:21:08AM -0700, Paul Turner wrote:
>
> > > - The naming here is really ambiguous:
> > > "__accumulate_sum" -> "__accumulate_pelt_segments"?
> >
> > OK, I did struggle with that a bit too but failed to improve, I'll change it.
> >
> > > - Passing in "remainder" seems irrelevant to the sum accumulation. It would be
> > > more clear to handle it from the caller.
> >
> > Well, this way we have all 3 delta parts in one function. I'll try it
> > and see what it looks like though.
>
> > > This is super confusing. It only works because remainder already had
> > > period_contrib aggregated _into_ it. We're literally computing:
> > > remainder + period_contrib - period_contrib
> >
> > Correct; although I didn't find it too confusing. Could be because I'd
> > been staring at this code for a few hours though.
> >
> > > We should just not call this in the !periods case and handle the remainder
> > > below.
> >
> > I'll change it see what it looks like.
>
> How's this?
That is good. Only:
> ---
> kernel/sched/fair.c | 22 ++++++++++------------
> 1 file changed, 10 insertions(+), 12 deletions(-)
>
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index 76f67b3e34d6..10d34498b5fe 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -2795,12 +2795,9 @@ static u64 decay_load(u64 val, u64 n)
> return val;
> }
>
> -static u32 __accumulate_sum(u64 periods, u32 period_contrib, u32 remainder)
> +static u32 __accumulate_pelt_segments(u64 periods, u32 d1, u32 d3)
> {
> - u32 c1, c2, c3 = remainder; /* y^0 == 1 */
> -
> - if (!periods)
> - return remainder - period_contrib;
> + u32 c1, c2, c3 = d3; /* y^0 == 1 */
>
> if (unlikely(periods >= LOAD_AVG_MAX_N))
> return LOAD_AVG_MAX;
> @@ -2861,8 +2858,8 @@ accumulate_sum(u64 delta, int cpu, struct sched_avg *sa,
> unsigned long weight, int running, struct cfs_rq *cfs_rq)
> {
> unsigned long scale_freq, scale_cpu;
> + u32 contrib = delta;
u64 -> u32 may raise some question, so better cast it to show confidence
at the first.
next prev parent reply other threads:[~2017-03-31 2:54 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-12 21:44 [RESEND PATCH 0/2] sched/fair: Add documentation and optimize __update_sched_avg() Yuyang Du
2017-02-12 21:44 ` [RESEND PATCH 1/2] documentation: Add scheduler/sched-avg.txt Yuyang Du
2017-04-14 9:28 ` [tip:sched/core] sched/Documentation: Add 'sched-pelt' tool tip-bot for Yuyang Du
2017-02-12 21:44 ` [RESEND PATCH 2/2] sched/fair: Optimize __update_sched_avg() Yuyang Du
2017-03-28 12:50 ` Peter Zijlstra
2017-03-28 23:57 ` Yuyang Du
2017-03-28 14:46 ` Peter Zijlstra
2017-03-29 0:04 ` Yuyang Du
2017-03-29 10:41 ` Peter Zijlstra
2017-03-29 18:41 ` Yuyang Du
2017-03-30 11:21 ` Paul Turner
2017-03-30 12:16 ` Peter Zijlstra
2017-03-30 13:46 ` Peter Zijlstra
2017-03-30 18:50 ` Yuyang Du [this message]
2017-03-30 14:14 ` Peter Zijlstra
2017-03-30 19:13 ` Yuyang Du
2017-03-30 19:41 ` Yuyang Du
2017-03-31 7:13 ` Peter Zijlstra
2017-03-30 22:02 ` Paul Turner
2017-03-31 7:01 ` Peter Zijlstra
2017-03-31 9:58 ` Paul Turner
2017-03-31 11:23 ` Peter Zijlstra
2017-04-10 7:39 ` Dietmar Eggemann
2017-04-10 8:40 ` Peter Zijlstra
2017-03-31 11:30 ` Peter Zijlstra
2017-03-31 10:55 ` Paul Turner
2017-03-31 11:38 ` Peter Zijlstra
2017-04-10 10:47 ` Peter Zijlstra
2017-03-30 18:39 ` Yuyang Du
2017-03-30 8:32 ` [tip:sched/core] sched/fair: Optimize ___update_sched_avg() tip-bot for Yuyang Du
2017-02-28 0:59 ` [RESEND PATCH 0/2] sched/fair: Add documentation and optimize __update_sched_avg() 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=20170330185002.GC16440@ydu19desktop \
--to=yuyang.du@intel.com \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=matt@codeblueprint.co.uk \
--cc=mingo@kernel.org \
--cc=morten.rasmussen@arm.com \
--cc=peterz@infradead.org \
--cc=pjt@google.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.