From: Peter Zijlstra <peterz@infradead.org>
To: Vincent Guittot <vincent.guittot@linaro.org>
Cc: Jirka Hladky <jhladky@redhat.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@redhat.com>,
Kamil Kolakowski <kkolakow@redhat.com>,
Morten Rasmussen <morten.rasmussen@arm.com>,
Yuyang Du <yuyang.du@intel.com>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Mike Galbraith <umgwanakikbuti@gmail.com>,
Benjamin Segall <bsegall@google.com>,
Paul Turner <pjt@google.com>,
Matt Fleming <matt@codeblueprint.co.uk>
Subject: Re: Kernel 4.7rc3 - Performance drop 30-40% for SPECjbb2005 and SPECjvm2008 benchmarks against 4.6 kernel
Date: Fri, 24 Jun 2016 15:09:32 +0200 [thread overview]
Message-ID: <20160624130932.GA30909@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <CAKfTPtBvCuWfzjn2wQPvbaGn786nL1t4_h1DA8XzO3J51_F+zQ@mail.gmail.com>
On Fri, Jun 24, 2016 at 02:44:07PM +0200, Vincent Guittot wrote:
> > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> > index 22d64b3f5876..d4f6fb2f3057 100644
> > --- a/kernel/sched/fair.c
> > +++ b/kernel/sched/fair.c
> > @@ -2484,7 +2484,7 @@ static inline long calc_tg_weight(struct task_group *tg, struct cfs_rq *cfs_rq)
> > */
> > tg_weight = atomic_long_read(&tg->load_avg);
> > tg_weight -= cfs_rq->tg_load_avg_contrib;
> > - tg_weight += cfs_rq->load.weight;
> > + tg_weight += cfs_rq->avg.load_avg;
>
> IIUC, you are reverting
> commit fde7d22e01aa (sched/fair: Fix overly small weight for
> interactive group entities)
Ah!, I hadn't yet done a git-blame on this. Right you are, we should
have put a comment there.
So the problem here is that since commit:
2159197d6677 ("sched/core: Enable increased load resolution on 64-bit kernels")
load.weight and avg.load_avg are in different metrics. Which completely
wrecked things.
The obvious alternative is using:
scale_load_down(cfs_rq->load.weight);
Let me go run that through the benchmark.
> I have one question regarding the use of cfs_rq->avg.load_avg
> cfs_rq->tg_load_avg_contrib is the sampling of cfs_rq->avg.load_avg so
> I'm curious to understand why you use cfs_rq->avg.load_avg instead of
> keeping cfs_rq->tg_load_avg_contrib. Do you think that the sampling is
> not accurate enough to prevent any significant difference between both
> when we use tg->load_avg ?
I'm not entirely sure I understand your question; is it to the existence
of calc_tg_weight()? That is, why use calc_tg_weight() and not use
tg->load_avg as is?
It seemed like a simple and cheap way to increase accuracy, nothing more
behind it until the commit you referred to.
next prev parent reply other threads:[~2016-06-24 13:09 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-16 16:38 Kernel 4.7rc3 - Performance drop 30-40% for SPECjbb2005 and SPECjvm2008 benchmarks against 4.6 kernel Jirka Hladky
2016-06-16 17:22 ` Peter Zijlstra
2016-06-16 23:04 ` Jirka Hladky
2016-06-21 13:17 ` Jirka Hladky
2016-06-22 7:16 ` Peter Zijlstra
2016-06-22 7:49 ` Peter Zijlstra
2016-06-22 7:54 ` Peter Zijlstra
2016-06-22 9:52 ` Jirka Hladky
2016-06-22 11:12 ` Peter Zijlstra
2016-06-22 12:37 ` Jirka Hladky
2016-06-22 12:46 ` Jirka Hladky
2016-06-22 14:41 ` Jirka Hladky
2016-06-22 20:59 ` Peter Zijlstra
2016-06-22 8:20 ` Jirka Hladky
2016-06-23 18:33 ` Peter Zijlstra
2016-06-23 18:43 ` Peter Zijlstra
2016-06-24 7:44 ` Jirka Hladky
2016-06-24 8:08 ` Peter Zijlstra
2016-06-24 8:20 ` Jirka Hladky
2016-06-24 12:02 ` Peter Zijlstra
2016-06-24 12:09 ` Jirka Hladky
2016-06-24 12:30 ` Peter Zijlstra
2016-06-24 12:35 ` Jirka Hladky
2016-06-24 12:44 ` Vincent Guittot
2016-06-24 13:08 ` Jirka Hladky
2016-06-24 13:09 ` Peter Zijlstra [this message]
2016-06-24 13:23 ` Vincent Guittot
2016-06-24 13:33 ` Peter Zijlstra
2016-06-24 13:45 ` Peter Zijlstra
2016-06-24 13:42 ` Peter Zijlstra
2016-06-24 15:54 ` Peter Zijlstra
2016-06-24 22:13 ` Jirka Hladky
-- strict thread matches above, loose matches on Subject: below --
2016-06-22 7:37 Branimir Maksimovic
2016-06-22 8:25 ` Jirka Hladky
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=20160624130932.GA30909@twins.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=jhladky@redhat.com \
--cc=kkolakow@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=matt@codeblueprint.co.uk \
--cc=mingo@redhat.com \
--cc=morten.rasmussen@arm.com \
--cc=pjt@google.com \
--cc=umgwanakikbuti@gmail.com \
--cc=vincent.guittot@linaro.org \
--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 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.