From: "Doug Smythies" <dsmythies@telus.net>
To: "'Rafael J. Wysocki'" <rjw@rjwysocki.net>
Cc: 'Giovanni Gherdovich' <ggherdovich@suse.cz>,
'Srinivas Pandruvada' <srinivas.pandruvada@linux.intel.com>,
'Peter Zijlstra' <peterz@infradead.org>,
'LKML' <linux-kernel@vger.kernel.org>,
'Frederic Weisbecker' <frederic@kernel.org>,
'Mel Gorman' <mgorman@suse.de>,
'Daniel Lezcano' <daniel.lezcano@linaro.org>,
'Linux PM' <linux-pm@vger.kernel.org>,
Doug Smythies <dsmythies@telus.net>
Subject: RE: [RFC/RFT][PATCH v6] cpuidle: New timer events oriented governor for tickless systems
Date: Wed, 28 Nov 2018 15:20:07 -0800 [thread overview]
Message-ID: <002c01d48770$eba6efa0$c2f4cee0$@net> (raw)
In-Reply-To: Q8oEgsq1aDhAwQ8oJg8ZUI
On 2018.11.23 02:36 Rafael J. Wysocki wrote:
v5 -> v6:
* Avoid applying poll_time_limit to non-polling idle states by mistake.
* Use idle duration measured by the governor for everything (as it likely is
more accurate than the one measured by the core).
-- above missing-- (see follow up e-mail from Rafael)
* Rename SPIKE to PULSE.
* Do not run pattern detection upfront. Instead, use recent idle duration
values to refine the state selection after finding a candidate idle state.
* Do not use the expected idle duration as an extra latency constraint
(exit latency is less than the target residency for all of the idle states
known to me anyway, so this doesn't change anything in practice).
Hi Rafael,
I did some minimal testing on teov6, using kernel 4.20-rc3 as my baseline
reference kernel.
Test 1: Phoronix bdench test, all options: 1, 6, 12, 48, 128, 256 clients.
Note: because it uses the disk, the dbench test is somewhat non-repeatable.
However, if particular attention is paid to not doing anything else with
the disk between tests, then it seems to be repeatable to within about 6%.
Anyway no significant difference observed between kernel 4.20-rc3 and the
same with the teov6 patch.
Test 2: Pipe test, non cross core. (And idle state 0 test, really)
I ran 4 pipe tests, 1 for each of my 4 cores, @2 CPUs per core.
Thus, pretty much only idle state 0 was ever used.
Processor package power was similar for both kernels.
teov6 entered/exited idle state 0 about 60,984 times/second/cpu.
-rc3 entered/exited idle state 0 about 62,806 times/second/cpu.
There was a difference in percentage time spent in idle state 0,
with kernel 4.20-rc3 spending 0.2441% in idle state 0 verses
teov6 at 0.0641%.
For throughput, teov6 was 1.4% faster.
Test 3: was an attempt to sweep through a preference for
all idle states.
40 threads were launched with nothing to do except sleep
for a variable duration of 1 to 500 uSec, each step was
run for 1 minute. With 1 minute idle before the test and a few
minutes idle after, the total test duration was about 505 minutes.
Recall that when one asks for a short sleep of 1 uSec, they actually
get about 50 uSec, due to overheads. So I use 40 threads in an attempt
to get the average time between wakeup events per CPU down somewhat.
The results are here:
http://fast.smythies.com/linux-pm/k420/k420-pn-sweep-teo6-2.htm
I might try to get some histogram information at a later date.
... Doug
next reply other threads:[~2018-11-28 23:20 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-28 23:20 Doug Smythies [this message]
2018-11-29 9:42 ` [RFC/RFT][PATCH v6] cpuidle: New timer events oriented governor for tickless systems Rafael J. Wysocki
2018-12-03 23:52 ` Rafael J. Wysocki
-- strict thread matches above, loose matches on Subject: below --
2018-11-30 7:48 Doug Smythies
2018-11-30 8:51 ` Rafael J. Wysocki
2018-12-03 23:47 ` Rafael J. Wysocki
2018-12-05 23:06 ` Doug Smythies
2018-12-06 9:11 ` Rafael J. Wysocki
2018-11-23 10:35 Rafael J. Wysocki
2018-11-23 10:40 ` Rafael J. Wysocki
2018-12-01 14:18 ` Giovanni Gherdovich
2018-12-03 23:37 ` Rafael J. Wysocki
2018-12-03 16:23 ` Doug Smythies
2018-12-07 13:34 ` Mel Gorman
2018-12-08 10:23 ` Giovanni Gherdovich
2018-12-08 16:24 ` Doug Smythies
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='002c01d48770$eba6efa0$c2f4cee0$@net' \
--to=dsmythies@telus.net \
--cc=daniel.lezcano@linaro.org \
--cc=frederic@kernel.org \
--cc=ggherdovich@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=peterz@infradead.org \
--cc=rjw@rjwysocki.net \
--cc=srinivas.pandruvada@linux.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;
as well as URLs for NNTP newsgroup(s).