All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Doug Smythies" <dsmythies@telus.net>
To: "'Rafael J. Wysocki'" <rafael@kernel.org>
Cc: 'Rik van Riel' <riel@surriel.com>,
	"'Rafael J. Wysocki'" <rjw@rjwysocki.net>,
	'Linux PM' <linux-pm@vger.kernel.org>,
	'Frederic Weisbecker' <fweisbec@gmail.com>,
	'Thomas Gleixner' <tglx@linutronix.de>,
	'Paul McKenney' <paulmck@linux.vnet.ibm.com>,
	'Thomas Ilsche' <thomas.ilsche@tu-dresden.de>,
	'Aubrey Li' <aubrey.li@linux.intel.com>,
	'Mike Galbraith' <mgalbraith@suse.de>,
	'LKML' <linux-kernel@vger.kernel.org>,
	'Peter Zijlstra' <peterz@infradead.org>,
	Doug Smythies <dsmythies@telus.net>
Subject: RE: [PATCH v2] cpuidle: poll_state: Add time limit to poll_idle()
Date: Fri, 23 Mar 2018 14:30:03 -0700	[thread overview]
Message-ID: <000001d3c2ee$1e45c410$5ad14c30$@net> (raw)
In-Reply-To: zIfde8JFp1KonzIfeepFUa

On 2018.03.23 02:08 Rafael J. Wysocki wrote:
> On Fri, Mar 23, 2018 at 9:57 AM, Rafael J. Wysocki <rafael@kernel.org> wrote:
>> On Fri, Mar 23, 2018 at 4:19 AM, Doug Smythies <dsmythies@telus.net> wrote:
>>> On 2018.03.22 12:12 Doug Smythies wrote:

...[snip]...

>>
>>> I'm not sure how good it is but I made a test. I didn't believe
>>> the results, so I did it 3 times.
>>>
>>> V7.3 is as from the git branch.
>>> V7.3p is plus the patch adding the counter loop to poll_state.c
>>>
>>> The test is a tight loop (about 19600 loops per second) running
>>> on all 8 CPUs. I can not seem to get my system to use Idle State
>>> 0, so I disabled Idle States 1 and 2 to force use of Idle State 0.
>>>
>>> V7.3 uses a processor package power of 62.5 Watts
>>> V7.3p uses a processor package power of 53.4 Watts, or 14.6% less power.
>>>
>>> The loop times do not change.
>>> The Idle state 0 residency per unit time does not change.
>>
>> OK, so this means that the results should improve for Rik with this
>> patch too. :-)

I hope so.

> BTW, can you possibly check how much of a difference it makes to
> reduce POLL_IDLE_COUNT in the patch to, say, 500 or even more?
> 
> The lower it is, the less noise it will introduce AFAICS.

Well, we would expect the curve to be something like a typical 1/x curve:

Power = 53.4 + k1/(k2* POLL_IDLE_COUNT + k3)

I did some runs and did a crude fit:

Power ~= 53.4 + 35/(POLL_IDLE_COUNT + 3)

And then calculate an allowed error from that. A count of 100 gives
back only 0.64% of the power, and so I suggest would be a reasonable
number.

That being said, my test is quite crude and we should first see what
others, including Rik, get.

These two graphs might help explain what I did:

http://fast.smythies.com/v73p_vary_count.png
http://fast.smythies.com/v73p_extra_power.png

It is just my opinion, but I think users with very stringent
idle state 0 exit latency requirements should test with
POLL_IDLE_COUNT set to 1. Then they know the worst case works,
whereas they might not hit it at 1/POLL_IDLE_COUNT probability.
Once happy that the worst case works, use nominal (T.B.D.)
POLL_IDLE_COUNT, for the power savings.

... Doug

  parent reply	other threads:[~2018-03-23 21:30 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-12  9:36 [PATCH v2] cpuidle: poll_state: Add time limit to poll_idle() Rafael J. Wysocki
2018-03-14 11:24 ` Rafael J. Wysocki
2018-03-14 12:04 ` Peter Zijlstra
2018-03-14 12:08   ` Rafael J. Wysocki
2018-03-22 16:32   ` Rik van Riel
2018-03-22 19:11     ` Peter Zijlstra
2018-03-27 16:42     ` Rafael J. Wysocki
2018-03-27 18:02       ` Rik van Riel
2018-03-27 21:09         ` Rafael J. Wysocki
2018-03-22 19:11   ` Doug Smythies
2018-03-23  3:19   ` Doug Smythies
2018-03-23  8:57     ` Rafael J. Wysocki
2018-03-23  9:07       ` Rafael J. Wysocki
2018-03-23 21:30       ` Doug Smythies [this message]
2018-03-24 11:25         ` Rafael J. Wysocki

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='000001d3c2ee$1e45c410$5ad14c30$@net' \
    --to=dsmythies@telus.net \
    --cc=aubrey.li@linux.intel.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mgalbraith@suse.de \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=peterz@infradead.org \
    --cc=rafael@kernel.org \
    --cc=riel@surriel.com \
    --cc=rjw@rjwysocki.net \
    --cc=tglx@linutronix.de \
    --cc=thomas.ilsche@tu-dresden.de \
    /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.