public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Vikram Mulukutla <markivx@codeaurora.org>
To: Florian Fainelli <f.fainelli@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>
Cc: Viresh Kumar <viresh.kumar@linaro.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux PM <linux-pm@vger.kernel.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Markus Mayer <code@mmayer.net>,
	Daniel Lezcano <daniel.lezcano@linaro.org>
Subject: Re: cpuidle and cpufreq coupling?
Date: Thu, 20 Jul 2017 17:11:01 -0700	[thread overview]
Message-ID: <6b28e6f3-d961-24c8-ad90-8cd6cd844236@codeaurora.org> (raw)
In-Reply-To: <a237a845-c24e-c1dc-c910-e09a69d631b6@gmail.com>

On 7/20/2017 3:56 PM, Florian Fainelli wrote:
> On 07/20/2017 07:45 AM, Peter Zijlstra wrote:

<snip>

>> 
>> Can your ARM part change OPP without scheduling? Because (for obvious
>> reasons) the idle thread is not supposed to block.
> 
> I think it should be able to do that, but I am not sure that if I went
> through the cpufreq API it would be that straight forward so I may have
> to re-implement some of the frequency scaling logic outside of cpufreq
> (or rather make the low-level parts some kind of library I guess).
> 

I think I can safely mention that some of our non-upstream idle drivers
in the past have invoked low level clock drivers to atomically switch
CPUs to low frequency OPPs, with no interaction whatsoever with cpufreq.
It was maintainable since both the idle and clock drivers were
qcom-specific. However this is no longer necessary in recent designs and
I really hope we never need to do this again...

We didn't have to do a voltage switch and just PLL or mux
work so this was doable. I'm guessing your atomic switching also allows
voltage reduction?

If your architecture allows another CPU to change the entering-idle 
CPU's
frequency, synchronization will be necessary as well - this is where it
can get a bit tricky.

Thanks,
Vikram

  reply	other threads:[~2017-07-21  0:11 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-19 22:54 cpuidle and cpufreq coupling? Florian Fainelli
2017-07-19 23:17 ` Rafael J. Wysocki
2017-07-20  7:18   ` Viresh Kumar
2017-07-20  9:23     ` Sudeep Holla
2017-07-20 23:01       ` Florian Fainelli
2017-07-20  9:52     ` Rafael J. Wysocki
2017-07-20 14:45       ` Peter Zijlstra
2017-07-20 22:56         ` Florian Fainelli
2017-07-21  0:11           ` Vikram Mulukutla [this message]
2017-07-21  0:30             ` Florian Fainelli

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=6b28e6f3-d961-24c8-ad90-8cd6cd844236@codeaurora.org \
    --to=markivx@codeaurora.org \
    --cc=code@mmayer.net \
    --cc=daniel.lezcano@linaro.org \
    --cc=f.fainelli@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=peterz@infradead.org \
    --cc=rafael@kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=viresh.kumar@linaro.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox