From: Pavel Machek <pavel@ucw.cz>
To: Amit Kucheria <amit.kucheria@nokia.com>
Cc: linux-pm@lists.osdl.org
Subject: Re: So, what's the status on the recent patches here?
Date: Thu, 31 Aug 2006 00:36:54 +0200 [thread overview]
Message-ID: <20060830223654.GE3923@elf.ucw.cz> (raw)
In-Reply-To: <1156935653.10909.69.camel@localhost>
On Wed 2006-08-30 14:00:53, Amit Kucheria wrote:
> On Thu, 2006-08-24 at 09:59 +0200, ext Pavel Machek wrote:
> > Hi!
> >
> > > > > The userspace interface in Eungeny's patches is for other userspace
> > > > > programs (policy managers) to activate/deactivate valid operating points
> > > > > in the system dynamically and if necessary, introduce new ones into the
> > > > > system. It will also allow the operating points to be referenced by name
> > > > > instead of the tuple.
> > > > >
> > > > > Then, we will be able to use names like 'video', 'mp3', 'fast',
> > > > > 'powersave', 'usb' to switch to the relevant operating point based on
> > > > > configuration of the policy manager.
> > > >
> > > > This seems to be too specific to embedded machine.
> > > >
> > > > If userspace wants to work with usb and play mp3s at the same time,
> > > > what does it do?
> > >
> > > Switch to 'fast'?
> > >
> > > The operating point for a use-case specifies the _minimum_ required for
> > > the use-case. You can always go up.
> >
> > > The system designer is responsible for 'designing' operating points that
> > > take into account multiple use-cases. Designing here refers to mapping
> > > use-cases to HW operating points.
> >
> > Yes, and that's why I argue this is unsuitable for notebook: there are
> > just too many usecases for a notebook.
>
> You are trying to make it sound more complex than it really is. For a
> notebook, as you yourself pointed out, things could be handled with the
> present adaptive, load-based system. So you don't need to map _every_
> use-case to an operating point. So you don't need to move to use PowerOP
> today.
Ok, but please do not try to replace cpufreq with
powerop/oppoint. That is not possible.
> But PowerOP would allow SoC-based systems to tune the operating points
> to get the most out of their top-10 use-cases and sleep modes.
Question is: can we get similar savings without ugly interface powerop
presents?
> > > Consider an example system with a main CPU and a DSP. To simplify
> > > discussion, lets assume 3 levels for CPU and DSP speeds and system
> > > voltage. Then, here is what an example operating-point to use-case
> > > mapping table could look like:
> > >
> > > # CPU speed DSP speed Voltage use-case
> > > ----------------------------------------------------------
> > > 1. high high high fast, video
> > > 2. med high high
> > > 3. med med med usb[1]
> > > 4. low med med mp3
> > > 5. low low low powersave
> > >
> > > [1] USB has voltage constraint (voltage >= med)
> >
> > So... you take three independend parametrs and merge them into one,
> > named parameter. Bad idea.
>
> But they are NOT independent parameters! Which is why we want to
> encapsulate them into an 'Operating Point'. We have completely failed in
> our effort to explain the concept of an operating point if that has been
> your assumption all along.
They are independed, at least from application point of view. And
that's probably right interface to present to userland. Application
tells you its dsp speed desired, you take current cpu frequency
requirements from cpufreq, and select ooperating point with lowest
consumption based on that constraints.
> > What about simply having these parameters:
> >
> > usb on or off
> >
> > cpu speed (controlled by cpufreq)
> >
> > dsp speed (controlled by userspace)
> >
> > Then you can have infrastructure that is able to compute system
> > voltage from usb/cpu/dsp speed, and users stll have interface they can
> > understand.
>
> This is moot for the reason above - cpu/dsp/volt are NOT independent.
>
> And USB (or any device information) is NOT part of the operating point.
> It is just an asynchronous constraint whose appearance/disappearance
> influences operating point tangentially. IOW, on some systems USB could
> run at any operating point, so there would be no constraint. On others,
> use of USB would automatically cause usb clocks to go high which in turn
> would switch the system to an operating point that satisfies the
> constraint - this is handled by clock/voltage framework.
Okay, and why can't we handle _all_ the constraints in this style? Ask
userspace what constraints are there, and automagically select best
operating point, without having operating points explicit at userspace
interface.
> > > - Add usb and we switch to OP 3.
> > > - Now our performance monitor (e.g load avg) indicates that we need more
> > > CPU processing. So we switch to OP 2.
> >
> > That's cpufreq job, please
>
> Yes. Or more particularly, the ondemand governor, right? But load
> average is not the only input used to make decisions. There could be
> thermal alarms, battery alarms, etc. And deciding which of these
> conflicting inputs is given priority is a policy decision made by the
> device manager. We discussed some of this at the PM summit.
cpufreq already knows about thermal. (There's no policy in there, you
can't allow system to overheat).
cpufreq already knows about battery. (On some powernow-k8, high cpu
frequencies are not available on battery power, because battery is not
powerful enough). If you have aditional constraints (may not use
400MHz when battery is below 20%, because li-ion has too big internal
resistancy at that point?), please use cpufreq framework to enforce
them.
Is there anything cpufreq can't do?
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
next prev parent reply other threads:[~2006-08-30 22:36 UTC|newest]
Thread overview: 136+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-14 20:07 So, what's the status on the recent patches here? Greg KH
2006-08-14 22:24 ` Matthew Locke
2006-08-14 22:46 ` Dave Jones
2006-08-14 23:24 ` Matthew Locke
2006-08-14 23:48 ` Dave Jones
2006-08-15 1:00 ` Greg KH
2006-08-15 3:03 ` Dave Jones
2006-08-15 10:35 ` Amit Kucheria
2006-08-15 19:04 ` Dave Jones
2006-08-16 12:58 ` Igor Stoppa
2006-08-17 21:39 ` Pavel Machek
2006-08-18 10:02 ` Igor Stoppa
2006-08-18 15:29 ` Alexey Starikovskiy
2006-08-18 17:54 ` Igor Stoppa
2006-08-18 21:05 ` Alexey Starikovskiy
2006-08-20 13:19 ` Igor Stoppa
2006-08-17 5:20 ` Matthew Locke
2006-08-17 7:20 ` Paul Mundt
2006-08-17 9:18 ` Amit Kucheria
2006-08-17 21:40 ` Pavel Machek
2006-08-18 5:42 ` Vitaly Wool
2006-08-23 12:28 ` Pavel Machek
2006-08-23 15:26 ` Igor Stoppa
2006-08-24 12:58 ` Vitaly Wool
2006-08-25 19:55 ` Pavel Machek
2006-08-25 23:26 ` Vitaly Wool
2006-08-26 10:18 ` Pavel Machek
2006-08-26 13:30 ` Vitaly Wool
2006-08-26 13:46 ` Pavel Machek
2006-08-28 16:40 ` Mark Gross
2006-08-28 17:39 ` Pavel Machek
2006-08-29 7:51 ` Matthew Locke
2006-08-30 22:13 ` Mark Gross
2006-08-30 22:27 ` Pavel Machek
2006-08-18 11:48 ` Amit Kucheria
2006-08-24 7:59 ` Pavel Machek
2006-08-30 11:00 ` Amit Kucheria
2006-08-30 22:36 ` Pavel Machek [this message]
2006-08-31 13:44 ` Amit Kucheria
2006-09-02 11:17 ` Pavel Machek
2006-08-17 21:24 ` Pavel Machek
2006-08-19 6:10 ` David Singleton
2006-08-22 2:13 ` Greg KH
2006-08-22 5:20 ` David Singleton
2006-08-23 19:05 ` Mark Gross
2006-08-24 12:39 ` Pavel Machek
2006-08-19 6:19 ` David Singleton
[not found] ` <20060819184843.GB15644@redhat.com>
2006-08-20 3:20 ` David Singleton
2006-08-20 3:30 ` Dave Jones
2006-08-23 18:50 ` Mark Gross
2006-08-27 4:37 ` David Singleton
2006-08-27 15:41 ` Pavel Machek
2006-08-29 15:55 ` David Singleton
2006-08-29 16:34 ` Pavel Machek
2006-08-29 17:49 ` Preece Scott-PREECE
2006-08-30 6:20 ` Matthew Locke
2006-08-30 13:26 ` Preece Scott-PREECE
2006-08-30 22:50 ` Pavel Machek
2006-08-31 0:22 ` Preece Scott-PREECE
2006-08-31 12:04 ` Pavel Machek
2006-09-02 18:05 ` David Singleton
2006-09-02 19:30 ` Rafael J. Wysocki
2006-09-03 16:25 ` David Singleton
2006-09-03 20:57 ` Rafael J. Wysocki
2006-09-03 21:33 ` Pavel Machek
2006-09-09 0:39 ` David Singleton
2006-09-09 0:48 ` David Singleton
2006-09-09 16:13 ` Pavel Machek
2006-09-09 12:17 ` Pavel Machek
2006-09-11 15:11 ` David Singleton
2006-09-11 17:14 ` Pavel Machek
2006-09-11 18:58 ` Matthew Locke
2006-08-30 4:52 ` David Singleton
2006-08-30 5:52 ` Matthew Locke
2006-08-30 13:39 ` Preece Scott-PREECE
2006-08-30 22:43 ` Pavel Machek
2006-08-27 19:48 ` Greg KH
2006-08-28 0:07 ` David Singleton
2006-08-27 20:54 ` Eugeny S. Mints
2006-08-28 22:18 ` Pavel Machek
2006-08-29 21:46 ` Eugeny S. Mints
2006-08-29 1:29 ` David Singleton
2006-08-29 22:39 ` Eugeny S. Mints
2006-08-31 13:27 ` Amit Kucheria
2006-08-31 19:22 ` Preece Scott-PREECE
2006-09-01 8:11 ` Amit Kucheria
2006-08-14 23:29 ` Dominik Brodowski
2006-08-14 23:48 ` Matthew Locke
-- strict thread matches above, loose matches on Subject: below --
2006-08-16 1:27 Scott E. Preece
2006-08-16 15:25 ` Mark Gross
2006-08-20 13:36 Woodruff, Richard
2006-08-23 19:20 Woodruff, Richard
2006-08-24 8:03 ` Pavel Machek
2006-08-24 12:16 Woodruff, Richard
2006-08-24 12:29 ` Pavel Machek
2006-08-24 14:52 Woodruff, Richard
2006-08-25 19:58 ` Pavel Machek
2006-08-25 20:05 Woodruff, Richard
2006-08-25 20:08 ` Pavel Machek
2006-08-25 20:22 Woodruff, Richard
2006-08-25 20:34 ` Alan Stern
2006-08-25 21:27 ` Pavel Machek
2006-08-25 21:46 ` Alan Stern
2006-08-25 22:03 ` Pavel Machek
2006-08-26 2:21 ` Alan Stern
2006-08-25 20:57 Woodruff, Richard
2006-08-25 21:13 ` Alan Stern
2006-08-25 21:21 Woodruff, Richard
2006-08-25 21:42 ` Alan Stern
2006-08-25 22:11 Woodruff, Richard
2006-08-31 0:52 Scott E. Preece
2006-08-31 2:41 Woodruff, Richard
2006-08-31 15:14 Scott E. Preece
2006-09-01 14:49 Scott E. Preece
2006-09-03 21:21 Scott E. Preece
2006-09-03 21:54 ` Pavel Machek
2006-09-03 21:34 Scott E. Preece
2006-09-03 21:43 ` Pavel Machek
2006-09-03 22:10 ` Rafael J. Wysocki
2006-09-03 22:12 Scott E. Preece
2006-09-03 22:25 ` Pavel Machek
2006-09-03 22:31 Scott E. Preece
2006-09-03 22:41 ` Pavel Machek
2006-09-03 22:40 Scott E. Preece
2006-09-04 9:06 ` Pavel Machek
2006-09-05 16:45 ` Mark Gross
2006-09-06 10:59 ` Pavel Machek
2006-09-03 23:00 Scott E. Preece
2006-09-04 9:12 ` Pavel Machek
2006-09-05 10:31 ` Rafael J. Wysocki
2006-09-03 23:05 Scott E. Preece
2006-09-04 9:09 ` Pavel Machek
2006-09-04 15:43 Scott E. Preece
2006-09-05 16:03 Scott E. Preece
2006-09-05 20:42 ` Rafael J. Wysocki
2006-09-06 10:56 ` Pavel Machek
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=20060830223654.GE3923@elf.ucw.cz \
--to=pavel@ucw.cz \
--cc=amit.kucheria@nokia.com \
--cc=linux-pm@lists.osdl.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