linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Saravana Kannan <skannan@codeaurora.org>
To: Ingo Molnar <mingo@elte.hu>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Todd Poynor <toddpoynor@google.com>,
	Russell King <linux@arm.linux.org.uk>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Nicolas Pitre <nico@fluxnic.net>, Oleg Nesterov <oleg@redhat.com>,
	cpufreq@vger.kernel.org, linux-kernel@vger.kernel.org,
	Anton Vorontsov <anton.vorontsov@linaro.org>,
	linaro-kernel@lists.linaro.org, Mike Chan <mike@android.com>,
	Dave Jones <davej@redhat.com>,
	"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
	kernel-team@android.com, linux-arm-kernel@lists.infradead.org,
	Arjan Van De Ven <arjan@infradead.org>
Subject: Re: [PATCH RFC 0/4] Scheduler idle notifiers and users
Date: Fri, 10 Feb 2012 19:15:10 -0800	[thread overview]
Message-ID: <4F35DD3E.4020406@codeaurora.org> (raw)
In-Reply-To: <20120209075106.GB18387@elte.hu>

On 02/08/2012 11:51 PM, Ingo Molnar wrote:
>
> * Benjamin Herrenschmidt<benh@kernel.crashing.org>  wrote:
>
>> On Wed, 2012-02-08 at 15:23 -0500, Dave Jones wrote:
>>> I think the biggest mistake we ever made with cpufreq was making it
>>> so configurable. If we redesign it, just say no to plugin governors,
>>> and
>>> yes to a lot fewer sysfs knobs.
>>>
>>> So, provide mechanism to kill off all the governors, and there's a
>>> migration path from what we have now to something that just works
>>> in a lot more cases, while remaining configurable enough for the
>>> corner-cases.
>>
>> On the other hand, the need for schedulable contxts may not
>> necessarily go away.
>
> We will support it, but the *sane* hw solution is where
> frequency transitions can be done atomically.

I'm not sure atomicity has much to do with this. From what I can tell, 
it's about the physical characteristics of the voltage source and the 
load on said source.

After a quick digging around for some info for one of our platforms 
(ARM/MSM), it looks like it will take 200us to ramp up the power rail 
from the voltage for the lowest CPU freq to voltage for the highest CPU 
freq. And that's ignoring any communication delay. The 200us is purely 
how long it takes for the PMIC output to settle given the power load 
from the CPU. I would think other PMICs from different manufacturers 
would be in the same ballpark.

200us is a lot of time to add to a context switch or to busy wait on 
when the processors today can run at GHz speeds.

So, with what I know this doesn't look like a matter of broken HW unless 
the PMIC I'm looking up data for is a really crappy one. I'm sure other 
in the community know more about PMICs than I do and they can correct me 
if the general PMIC voltage settling characteristic is much better than 
the one I'm look at.

> Most workloads
> change their characteristics very quickly, and so does their
> power management profile change.
>
> The user-space driven policy model failed for that reason: it
> was *way* too slow in reacting) - and slow hardware transitions
> suck for a similar reason as well.

I think we all agree on this.

> We accomodate all hardware as well as we can, but we *design*
> for proper hardware. So Peter is right, this should be done
> properly.

When you say accommodate all hardware, does it mean we will keep around 
CPUfreq and allow attempts at improving it? Or we will completely move 
to scheduler based CPU freq scaling, but won't try to force atomicity? 
Say, may be queue up a notification to a CPU driver to scale up the 
frequency as soon as it can?

IMHO, I think the problem with CPUfreq and its dynamic governors today 
is that they do a timer based sampling of the CPU load instead of 
getting some hints from the scheduler when the scheduler knows that the 
load average is quite high.

-Saravana

-- 
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.

  reply	other threads:[~2012-02-11  3:15 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-08  1:39 [PATCH RFC 0/4] Scheduler idle notifiers and users Anton Vorontsov
2012-02-08  1:41 ` [PATCH 1/4] sched: Introduce idle notifiers API Anton Vorontsov
2012-02-08  1:43 ` [PATCH 2/4] sched: Wire up idle notifiers Anton Vorontsov
2012-02-08  1:44 ` [PATCH 3/4] cpufreq: New 'interactive' governor Anton Vorontsov
2012-02-08 23:00   ` Vincent Guittot
2012-02-09  0:32     ` Anton Vorontsov
2012-02-08  1:44 ` [PATCH 4/4] ARM: Move leds idle start/stop calls to sched idle notifiers Anton Vorontsov
2012-02-08  3:05 ` [PATCH RFC 0/4] Scheduler idle notifiers and users Peter Zijlstra
2012-02-08 20:23   ` Dave Jones
2012-02-08 21:33     ` Benjamin Herrenschmidt
2012-02-09  7:51       ` Ingo Molnar
2012-02-11  3:15         ` Saravana Kannan [this message]
2012-02-11 14:39           ` Mark Brown
2012-02-11 14:53             ` Peter Zijlstra
2012-02-11 15:33               ` Mark Brown
2012-02-15 13:38                 ` Peter Zijlstra
2012-02-15 16:04                   ` Mark Brown
2012-02-12 21:33               ` Benjamin Herrenschmidt
2012-02-11 14:45           ` Ingo Molnar
2012-02-14 23:20             ` Saravana Kannan
2012-02-15 13:38               ` Peter Zijlstra
2012-02-15 14:02                 ` Russell King - ARM Linux
2012-02-15 15:01                   ` Peter Zijlstra
2012-02-15 16:00                     ` Russell King - ARM Linux
2012-02-15 16:09                       ` Peter Zijlstra
2012-02-16  3:31                     ` Benjamin Herrenschmidt
2012-02-16 10:14                       ` Peter Zijlstra
2012-02-17  9:00                     ` Dominik Brodowski
2012-02-20 11:03                       ` Peter Zijlstra
2012-02-21 12:38                     ` Pantelis Antoniou
2012-02-21 12:56                       ` Peter Zijlstra
2012-02-21 13:31                         ` Pantelis Antoniou
2012-02-21 14:52                           ` Amit Kucheria
2012-02-21 17:06                             ` Pantelis Antoniou

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=4F35DD3E.4020406@codeaurora.org \
    --to=skannan@codeaurora.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=anton.vorontsov@linaro.org \
    --cc=arjan@infradead.org \
    --cc=benh@kernel.crashing.org \
    --cc=cpufreq@vger.kernel.org \
    --cc=davej@redhat.com \
    --cc=kernel-team@android.com \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mike@android.com \
    --cc=mingo@elte.hu \
    --cc=nico@fluxnic.net \
    --cc=oleg@redhat.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=toddpoynor@google.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).