From: Mark Brown <broonie@opensource.wolfsonmicro.com>
To: Saravana Kannan <skannan@codeaurora.org>
Cc: Ingo Molnar <mingo@elte.hu>,
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: Sat, 11 Feb 2012 14:39:51 +0000 [thread overview]
Message-ID: <20120211143951.GA24564@sirena.org.uk> (raw)
In-Reply-To: <4F35DD3E.4020406@codeaurora.org>
On Fri, Feb 10, 2012 at 07:15:10PM -0800, Saravana Kannan wrote:
> On 02/08/2012 11:51 PM, Ingo Molnar wrote:
> >* Benjamin Herrenschmidt<benh@kernel.crashing.org> wrote:
> >>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.
No matter how good the PMICs get the CPUs are also improving the speed
with which they can do frequency changes so I expect this is always
going to need consideration on at least some systems.
> 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.
Absolutely, and as you say this ignores communication overheads - often
PMICs are connected via I2C which can only be communicated with in
schedulable context and which takes substantially more than microseconds
to interact with. Usually in systems where scaling performance is
important there will also be GPIOs to signal voltage changes but we
can't rely on them being there and you can often do some useful stuff
if you also interact via I2C.
For step downs this isn't such a big deal as we don't often care if the
voltage drops immediately but for step ups it's critical as if the
voltage hasn't ramped before the CPU tries to run at the higher
frequency the CPU will brown out.
> >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?
We could also make the system aware of the multiple steps in scaling so
that it can do things like kick off voltage ramps and wait for them to
complete before performing the frequency change, I'm sure there's room
to do useful things there. Possibly having the concept of expanding the
range of currently available frequencies for example.
> 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.
Yes, this seems like a big issue - often the interval before the
governors will react can end up being human visible which is
unfortunate.
next prev parent reply other threads:[~2012-02-11 14:40 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-08 1:39 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
2012-02-11 14:39 ` Mark Brown [this message]
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=20120211143951.GA24564@sirena.org.uk \
--to=broonie@opensource.wolfsonmicro.com \
--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=skannan@codeaurora.org \
--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
all inboxes | Powered by JetHome®