From: Mel Gorman <mgorman@suse.de>
To: lkp@lists.01.org
Subject: Re: [sched/fair] 0b0695f2b3: phoronix-test-suite.compress-gzip.0.seconds 19.8% regression
Date: Thu, 04 Jun 2020 09:56:56 +0100 [thread overview]
Message-ID: <20200604085656.GI3070@suse.de> (raw)
In-Reply-To: <CAKfTPtBLKUBF_p-LxfRce2nJQFqGj95KZ+yisAN_qrMq5VxW=w@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2457 bytes --]
On Wed, Jun 03, 2020 at 07:06:18PM +0200, Vincent Guittot wrote:
> > still exists, just the gap becomes smaller -
> > release run1 run2
> > v5.4 4.32 4.3 <-- little change comparing to above
> > v5.5 5.04 5.06 <-- improves
> > v5.7-rc7 4.79 4.78
> > v5.7 4.77 4.77
> >
> > I also attached turbostat data as attached.
>
> Thanks for the test results and the turbo stats figures.
> The outcomes are not as obvious as I would have expected. The
> performance difference for v5.5 and v5.7 when C6 and above are
> disabled tends to confirm that the idle state is impacting the
> performance but the difference still remain.
> Regarding turbostat output, the 1st main difference is the number of
> time the CPUs entered idle state:
> v5.4 run1 : 587252+905317+367732+859828+108+332436+110+217=3053000
> v5.7 run1 : 807623+639635+466723+1298557+108+283548+63+156=3496413
> which is +14% of entering idle.
> This is even more obvious on v5.5 run1:
> 761950+1320362+1681750+682042+91+304755+79+243=4751272 which is +55%
> of entering idle
>
> We have a similar ratio without c6 and above c-state between v5.4 and
> v5.7 and the ratio has decreased to +22% between v5.4 and v5.5.
>
> So this tends to confirm my assumption that tasks are more spread and
> this generates more enter/leave cpuidle. I still need to think about
> how to balance this
>
I have not looked into the data in depth but it's worth noting that
cpuidle changed the time a CPU spent polling before entering a C state
within the same window. See 36fcb4292473 ("cpuidle: use first valid target
residency as poll time") as an example where poll time went from hundreds
of nanoseconds to single digits depending on the machine. We used to poll
for up to a tick before entering idle. I'm not saying whether it's good
or bad but it certainly can have a big impact on how often a CPU enters
"true idle in a C state" as opposed to switching to the idle task (swapper)
for some house keeping.
Where things get fun is that the scheduler can make this more or less
obvious depending on its decisions. If tasks are bouncing like crazy around
a socket, the load balancer is shifting tasks like crazy or the scheduler
is stacking tasks when it should not then it can potentially perform
better in a benchmark if it prevents tasks entering a deep idle state.
--
Mel Gorman
SUSE Labs
WARNING: multiple messages have this Message-ID (diff)
From: Mel Gorman <mgorman@suse.de>
To: Vincent Guittot <vincent.guittot@linaro.org>
Cc: Oliver Sang <oliver.sang@intel.com>,
Ingo Molnar <mingo@kernel.org>, Ben Segall <bsegall@google.com>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Juri Lelli <juri.lelli@redhat.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Mike Galbraith <efault@gmx.de>,
Peter Zijlstra <peterz@infradead.org>,
Steven Rostedt <rostedt@goodmis.org>,
Thomas Gleixner <tglx@linutronix.de>,
LKML <linux-kernel@vger.kernel.org>,
lkp@lists.01.org, OTC LSE PnP <otc.lse.pnp@intel.com>,
"Huang, Ying" <ying.huang@intel.com>,
"Si, Beibei" <beibei.si@intel.com>,
"Du, Julie" <julie.du@intel.com>,
"Chen, Yu C" <yu.c.chen@intel.com>,
"Li, Aubrey" <aubrey.li@intel.com>,
"Tang, Feng" <feng.tang@intel.com>,
Rui Zhang <rui.zhang@intel.com>
Subject: Re: [sched/fair] 0b0695f2b3: phoronix-test-suite.compress-gzip.0.seconds 19.8% regression
Date: Thu, 4 Jun 2020 09:56:56 +0100 [thread overview]
Message-ID: <20200604085656.GI3070@suse.de> (raw)
In-Reply-To: <CAKfTPtBLKUBF_p-LxfRce2nJQFqGj95KZ+yisAN_qrMq5VxW=w@mail.gmail.com>
On Wed, Jun 03, 2020 at 07:06:18PM +0200, Vincent Guittot wrote:
> > still exists, just the gap becomes smaller -
> > release run1 run2
> > v5.4 4.32 4.3 <-- little change comparing to above
> > v5.5 5.04 5.06 <-- improves
> > v5.7-rc7 4.79 4.78
> > v5.7 4.77 4.77
> >
> > I also attached turbostat data as attached.
>
> Thanks for the test results and the turbo stats figures.
> The outcomes are not as obvious as I would have expected. The
> performance difference for v5.5 and v5.7 when C6 and above are
> disabled tends to confirm that the idle state is impacting the
> performance but the difference still remain.
> Regarding turbostat output, the 1st main difference is the number of
> time the CPUs entered idle state:
> v5.4 run1 : 587252+905317+367732+859828+108+332436+110+217=3053000
> v5.7 run1 : 807623+639635+466723+1298557+108+283548+63+156=3496413
> which is +14% of entering idle.
> This is even more obvious on v5.5 run1:
> 761950+1320362+1681750+682042+91+304755+79+243=4751272 which is +55%
> of entering idle
>
> We have a similar ratio without c6 and above c-state between v5.4 and
> v5.7 and the ratio has decreased to +22% between v5.4 and v5.5.
>
> So this tends to confirm my assumption that tasks are more spread and
> this generates more enter/leave cpuidle. I still need to think about
> how to balance this
>
I have not looked into the data in depth but it's worth noting that
cpuidle changed the time a CPU spent polling before entering a C state
within the same window. See 36fcb4292473 ("cpuidle: use first valid target
residency as poll time") as an example where poll time went from hundreds
of nanoseconds to single digits depending on the machine. We used to poll
for up to a tick before entering idle. I'm not saying whether it's good
or bad but it certainly can have a big impact on how often a CPU enters
"true idle in a C state" as opposed to switching to the idle task (swapper)
for some house keeping.
Where things get fun is that the scheduler can make this more or less
obvious depending on its decisions. If tasks are bouncing like crazy around
a socket, the load balancer is shifting tasks like crazy or the scheduler
is stacking tasks when it should not then it can potentially perform
better in a benchmark if it prevents tasks entering a deep idle state.
--
Mel Gorman
SUSE Labs
next prev parent reply other threads:[~2020-06-04 8:56 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-14 14:15 [sched/fair] 0b0695f2b3: phoronix-test-suite.compress-gzip.0.seconds 19.8% regression kernel test robot
2020-05-14 14:15 ` kernel test robot
2020-05-14 17:09 ` Vincent Guittot
2020-05-14 17:09 ` Vincent Guittot
2020-05-15 1:43 ` Oliver Sang
2020-05-15 1:43 ` Oliver Sang
2020-05-20 13:04 ` Vincent Guittot
2020-05-20 13:04 ` Vincent Guittot
2020-05-21 8:38 ` Oliver Sang
2020-05-21 8:38 ` Oliver Sang
2020-05-25 8:02 ` Vincent Guittot
2020-05-25 8:02 ` Vincent Guittot
2020-05-29 17:26 ` Vincent Guittot
2020-05-29 17:26 ` Vincent Guittot
2020-06-02 5:23 ` Oliver Sang
2020-06-02 5:23 ` Oliver Sang
2020-06-02 14:23 ` Oliver Sang
2020-06-02 14:23 ` Oliver Sang
2020-06-03 17:06 ` Vincent Guittot
2020-06-03 17:06 ` Vincent Guittot
2020-06-04 8:56 ` Mel Gorman [this message]
2020-06-04 8:56 ` Mel Gorman
2020-06-05 7:06 ` Vincent Guittot
2020-06-05 7:06 ` Vincent Guittot
[not found] <20200515141226.17700-1-hdanton@sina.com>
2020-05-18 7:00 ` Oliver Sang
2020-05-18 7:00 ` Oliver Sang
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=20200604085656.GI3070@suse.de \
--to=mgorman@suse.de \
--cc=lkp@lists.01.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.