LKML Archive on
help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <>
To: Rik van Riel <>
Cc: Peter Zijlstra <>,
	"Rafael J. Wysocki" <>,
	Linux PM <>,
	Frederic Weisbecker <>,
	Thomas Gleixner <>,
	Paul McKenney <>,
	Thomas Ilsche <>,
	Doug Smythies <>,
	Aubrey Li <>,
	Mike Galbraith <>,
	LKML <>
Subject: Re: [PATCH v2] cpuidle: poll_state: Add time limit to poll_idle()
Date: Tue, 27 Mar 2018 18:42:57 +0200	[thread overview]
Message-ID: <> (raw)
In-Reply-To: <>

On Thu, Mar 22, 2018 at 5:32 PM, Rik van Riel <> wrote:
> On Wed, 2018-03-14 at 13:04 +0100, Peter Zijlstra wrote:
>> On x86 we don't have to use that time_check_counter thing,
>> sched_clock()
>> is really cheap, not sure if it makes sense on other platforms.
> Are you sure? I saw a 5-10% increase in CPU use,
> for a constant query rate to a memcache style
> workload, with v3 of this patch.

I think I know what's going on.

Increased utilization with the same amount of work per time unit (and
I guess that's the case given the lack of specific information about
the workload) means more non-idle time with respect to total time and
that implies reduced frequency (eg. less turbo).

Now, combine that with the Doug's observation that limiting the rate
of local_clock() invocations in the poll_idle() loop reduces power
draw during experiments on his system significantly and with the other
one that in both cases local_lock() ends up being rdtsc() (most

What this implies to me is that invoking rdtsc() at a high rate on
multiple logical CPUs in parallel causes chips to get hot.  Actually
that may be so hot that they hit power/thremal (eg. RAPL) limits and
get their frequency reduced as a result.

Limiting the rate of local_clock() invocations obviously avoids this issue.

  parent reply	other threads:[~2018-03-27 16:43 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-12  9:36 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 [this message]
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
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:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='' \ \ \ \ \ \ \ \ \ \ \ \ \ \
    --subject='Re: [PATCH v2] cpuidle: poll_state: Add time limit to poll_idle()' \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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).