public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
* Re: Alternative Concept
@ 2007-03-14 22:08 Scott E. Preece
  2007-03-14 23:23 ` David Brownell
  0 siblings, 1 reply; 60+ messages in thread
From: Scott E. Preece @ 2007-03-14 22:08 UTC (permalink / raw)
  To: david-b; +Cc: linux-pm, linux, pavel



| From: David Brownell<david-b@pacbell.net>
| ...
| > > > Basically a good way of thinking about parameter framework is that parameter 
| > > > framework would start from existed clock framework and gradually evolve by 
| > > > addressing voltages, relationship between clocks and voltages, domains. 
| > > > Eventually clock framework functionality would be a part of power parameter 
| > > > framework.
| > > 
| > > A better way would be to say that implementions of the clock interface
| > > on a given platform can build on whatever they need to build.  That might
| > > include a "parameter" framework, if such a thing were defined in such
| > > a way that it became useful to such implementations.
| > > 
| > But shouldn't it be useful on every platform? As a sort of resource
| > manager (because that's what it would become if it would start adressing
| > interdependencies between clocks and voltages).
| 
| I couldn't know.  This "alternative concept" hasn't gotten very far
| into the hand-waving stage, much less beyond it into proposed interface
| or (gasp!) implementations.  Platforms that don't *have* those particular
| interdependencies should not of course incur costs to implement them...
---

Well, that's fine if the platform you use is the current design
center. For the rest of us, though, all the stuff you're currently
doing for power management is wasted effort and why should we incur
costs to work around them?  Today, we just configure it all out and put
in our own stuff. We would prefer to have a mainstream framework that
could be used to meet both Intel laptop needs and embedded device needs...

scott
-- 
scott preece
motorola mobile devices, il67, 1800 s. oak st., champaign, il  61820  
e-mail:	preece@motorola.com	fax:	+1-217-384-8550
phone:	+1-217-384-8589	cell: +1-217-433-6114	pager: 2174336114@vtext.com

^ permalink raw reply	[flat|nested] 60+ messages in thread
* Re: Alternative Concept
@ 2007-03-19 14:12 Scott E. Preece
  2007-03-20  7:56 ` David Brownell
  0 siblings, 1 reply; 60+ messages in thread
From: Scott E. Preece @ 2007-03-19 14:12 UTC (permalink / raw)
  To: david-b; +Cc: linux-pm, pavel, linux


Could you guys present a clear definition of exactly what you mean by
"clock domain" and "power domain"? I can think of several different ways
to interpret the phrases, and I'd like to end up with the same meaning
that you are arguing from...

thanks,
scott

| From: David Brownell<david-b@pacbell.net>
| 
| On Sunday 18 March 2007 7:27 pm, Ikhwan Lee wrote:
| > Hi,
| > 
| > On 3/16/07, David Brownell <david-b@pacbell.net> wrote:
| > > On Thursday 15 March 2007 8:56 pm, Ikhwan Lee wrote:
| > > > Hi,
| > > >
| > > > Although I agree that the current clock framework can handle power or
| > > > voltage domains in many platforms, having something like (struct clk
| > > > powerdomain1, powerdomain2;) does not seem like a good implementation,
| > > > a struct for clocks representing a power domain.
| > >
| > > Good thing that's not what I suggested then, right?  :)
| > >
| > > The point was that in the examples I've seen, the power domains
| > > are associated with clock domains, so that each clock is tied
| > > to one power domain.  And since you can't use the power domain
| > > without having a clock ... the implementation can tell if it's
| > > got to activate a power domain by looking at the clock.
| > 
| > True, although sometimes it gets dirty because multiple clock sources
| > are associated with one power domain
| 
| As clearly allowed for in what I wrote.  clock->power_domain.
| 
| > at the same time multiple power 
| > domains are associated with one clock source.
| 
| As also allowed for in what I wrote originally.  clock->power_domains[].
| 
| > Simple parent and child 
| > relationship provided by the clock framework is not always enough.
| 
| Not implied in what I wrote.
| 
| 
| > > There may be other models of power domain, but that's the one
| > > I've had reason to look at (which isn't synonymous with a straight
| > > voltage/current supply).
| > >
| > >
| > > > If a new framework is more straighforward and introduces a negligible
| > > > overhead to the current kernel, I think it is worthwhile to have a
| > > > look at it. Plus this new framework might be able to take care of
| > > > those platforms that are not nicely supported by the current clock
| > > > framework.
| > >
| > > Perhaps when we see one, we could discuss that as somethong other
| > > than pure handwaving.  But that still won't address the basic point
| > > that it's wrong to assume the clock framework should be written out
| > > of the picture.
| > 
| > I think we can reach an agreement. The clock framework does not need
| > to be replaced with a new one since it is serving its purpose well
| > enough. If extra functionalities are needed for clocks, we can extend
| > the existing clock framework. Such extensions will include functions
| > like clk_set_rate_pending() and power_transaction_commit(). However,
| > since clocks and voltages (or power domains) have different
| > characteristics, it is desirable to have a separate framework for
| > power domains and associate that framework with the existing clock
| > framework.
| 
| If the platform needs power domains to be exposed, yes.  But I gave
| examples where it does NOT need to be exposed, since each clock was
| in a single power domain.
| 
| 
| > I am not sure if this is the direction that the original PowerOp
| > people suggested. If we can agree on this, however, I think we can
| > proceed to look at the code.
| 
| I'm not sure why such agreement should be necessary before showing
| interface definitions.
| 
| - Dave
| _______________________________________________
| linux-pm mailing list
| linux-pm@lists.linux-foundation.org
| https://lists.linux-foundation.org/mailman/listinfo/linux-pm
| 

-- 
scott preece
motorola mobile devices, il67, 1800 s. oak st., champaign, il  61820  
e-mail:	preece@motorola.com	fax:	+1-217-384-8550
phone:	+1-217-384-8589	cell: +1-217-433-6114	pager: 2174336114@vtext.com

^ permalink raw reply	[flat|nested] 60+ messages in thread
* Re: Alternative Concept
@ 2007-03-15 14:00 Scott E. Preece
  2007-03-15 14:38 ` Eugeny S. Mints
  2007-03-15 17:33 ` Woodruff, Richard
  0 siblings, 2 replies; 60+ messages in thread
From: Scott E. Preece @ 2007-03-15 14:00 UTC (permalink / raw)
  To: igor.stoppa; +Cc: linux-pm, linux, pavel


| From: Igor Stoppa<igor.stoppa@nokia.com>
| 
| What's wrong with expanding the clk_fw?
| All is needed is:
| clk_set_rate_buffered(clk1, 300);
| clk_set_rate_buffered(clk2, 600);
| clk_rate_flush(); /* can include validation of the set */
| 
| Which is, incidentally, what OMAP2 does in hw for all the relevant clk
| dividers and it also provides validation for the new set of values.
| 
| Furthermore if the original assumption that complex transitions are
| allowed only atomically (p1A, p1B) => (p2A, p2B), hw support is
| mandatory, otherwise the transition is impossible, no matter what fancy
| sw fw is performing it.
---

If you did it this way:

tid1 = power_transaction_start();
clk_set_rate_pending(clk1, 300, tid1);
clk_set_rate_pending(clk1, 600, tid1);
power_transaction_commit(tid1);

Then you can conveniently be constructing more than one transaction at a
time and would have a little more information for debugging and for
canceling partial transactions.

I agree that there needs to be some use of hardware magic underneath to
make the changes truly atomic; the flush/commit operation would have to
use that magic. That has the advantage of putting all the complexity of
undedstanding that magic in one place, at the cost of making that one
place possibly arbitrarily complex.

scott

-- 
scott preece
motorola mobile devices, il67, 1800 s. oak st., champaign, il  61820  
e-mail:	preece@motorola.com	fax:	+1-217-384-8550
phone:	+1-217-384-8589	cell: +1-217-433-6114	pager: 2174336114@vtext.com

^ permalink raw reply	[flat|nested] 60+ messages in thread
* Re: Alternative Concept
@ 2007-03-15 13:29 Scott E. Preece
  2007-03-15 23:07 ` David Brownell
  0 siblings, 1 reply; 60+ messages in thread
From: Scott E. Preece @ 2007-03-15 13:29 UTC (permalink / raw)
  To: david-b; +Cc: linux-pm, linux, pavel


| From: David Brownell<david-b@pacbell.net>
| 
| On Wednesday 14 March 2007 3:08 pm, Scott E. Preece wrote:
| > | > 
| > | > But shouldn't it be useful on every platform? ..
| > | 
| > | I couldn't know.  This "alternative concept" hasn't gotten very far
| > | into the hand-waving stage, much less beyond it into proposed interface
| > | or (gasp!) implementations.  Platforms that don't *have* those particular
| > | interdependencies should not of course incur costs to implement them...
| > ---
| > 
| > Well, that's fine if the platform you use is the current design
| > center.
| 
| So you think that platforms which don't have such interdependencies
| should incur costs and complexity to address problems they don't have.
| Why?
---

Well, yes. That's part of having a solution that addresses the whole
community and not a subset. Linux is already full of things that trade
off benefits for one platform against costs for another platform.

---
| 
| > For the rest of us, though, all the stuff you're currently 
| > doing for power management is wasted effort and why should we incur
| > costs to work around them? 
| 
| Me personally?  What specifically are you referring to, and
| in what respects would that be "wasted" effort?
---

As noted in previous apology, I was speaking over-broadly. However, as I
said, we currently configure out cpufreq and ACPI support, among other
things, so they represent wasted effort from the particular perspective
of our products. I was speaking rhetorically - just saying that the work
done on cpufreq and ACPI was "wasted effort" in exactly the same sense
that work spent on supporting the PM needs of embedded devices would be.

---
| 
| > Today, we just configure it all out and put 
| > in our own stuff. We would prefer to have a mainstream framework that
| > could be used to meet both Intel laptop needs and embedded device needs...
| 
| I don't think I ever said anything against that notion of having PM
| infrastructure capable of handling both PC and embedded configs.  Not
| that I've seen a framework that handles either one well -- yet! -- so
| such notions haven't yet progressed to being testable theories.
| 
| Against the notion of infrastructure (PM or otherwise) that's not
| well designed or defined -- certainly I've argued.  That includes
| much current PM infrastructure, and most recent proposals.
---

Thanks - I can agree with that!

scott 

-- 
scott preece
motorola mobile devices, il67, 1800 s. oak st., champaign, il  61820  
e-mail:	preece@motorola.com	fax:	+1-217-384-8550
phone:	+1-217-384-8589	cell: +1-217-433-6114	pager: 2174336114@vtext.com

^ permalink raw reply	[flat|nested] 60+ messages in thread
* Re: Alternative Concept
@ 2007-03-15 13:21 Scott E. Preece
  0 siblings, 0 replies; 60+ messages in thread
From: Scott E. Preece @ 2007-03-15 13:21 UTC (permalink / raw)
  To: preece; +Cc: linux-pm, linux, pavel


| From: "Scott E. Preece" <preece@motorola.com>
| 
| | From: David Brownell<david-b@pacbell.net>
| | 
| | I couldn't know.  This "alternative concept" hasn't gotten very far
| | into the hand-waving stage, much less beyond it into proposed interface
| | or (gasp!) implementations.  Platforms that don't *have* those particular
| | interdependencies should not of course incur costs to implement them...
| ---
| 
| Well, that's fine if the platform you use is the current design
| center. For the rest of us, though, all the stuff you're currently
| doing for power management is wasted effort and why should we incur
| costs to work around them?  Today, we just configure it all out and put
| in our own stuff. We would prefer to have a mainstream framework that
| could be used to meet both Intel laptop needs and embedded device needs...
---

I have to apologize for this comment. I wrote it in a hurry as I left
for a meeting and tried to condense too many thoughts and not enough
thinking into the number of words I had time to type.

The clock framework is reasonably inoffensive, and I think it might be
reasonable to retain the current interfaces for clock-like devices while
adding on support for dependency modeling.  Today the dependencies
behind the clocks aren't modeled anywhere visible (in our implementation
they are managed by low-level assembler interfaces). We would like to be
able to have a power management system that WAS aware of the
interdependencies and able to make decisions based on concerns deeper
than the current clock frequency. Part of the reson for this is to
enable portability of at least some parts of our PM code (we build
products on a number of platforms, each with different parts in similar
roles).

I agree with David that typed interfaces are highly preferable.  Moving
the typing to data (having a type field associated with nodes in a
network) is more dangerous and less readable, at least in the absence of
a language with first-class classes and inheritance. So, I would prefer
to see the model have different kinds of nodes for different kinds of
devices; that should be possible while using common mechanisms for
implementing the dependencies between them.

However, I think it would be more appropriate to debate that when there
is a proposal for interfaces and at least a little bit of code. It is
possible that the current clock framework would appear broken in
comparison to something that was clearly superior. We don't know, yet,
whether what is proposed will look clearly superior, so it's probably
too early to argue about that aspect. The goal at this point was just to
surface the underlying concepts and see if people thought they
adequately model the problem space.

scott

-- 
scott preece
motorola mobile devices, il67, 1800 s. oak st., champaign, il  61820  
e-mail:	preece@motorola.com	fax:	+1-217-384-8550
phone:	+1-217-384-8589	cell: +1-217-433-6114	pager: 2174336114@vtext.com

^ permalink raw reply	[flat|nested] 60+ messages in thread
* [RFC] CPUFreq PowerOP integration, Intro 0/3
@ 2006-08-24  1:23 Eugeny S. Mints
  2006-10-07  2:36 ` Alternative Concept [Was: Re: [RFC] CPUFreq PowerOP integration, Intro 0/3] Dominik Brodowski
  0 siblings, 1 reply; 60+ messages in thread
From: Eugeny S. Mints @ 2006-08-24  1:23 UTC (permalink / raw)
  To: pm list

Integrating CPUFreq and PowerOP was discussed at the Linux PM summit
and in recent emails exchanges.  Some say keep them separate and some
say they must be integrated.  There is actually a very natural point
where integration makes sense - cpufreq_driver. This patchset presents
that integration point and is submitted for discussion.

The patches do not change the functionality of the cpufreq core.
Instead the idea is to redesign the tightly coupled interfaces of
cpufreq to clearly separate the arch dependent and independent pieces
layers.  This enables cpufreq to become arch independent and can start
to use the named operating points in all its layers.

PowerOP  replaces cpufreq driver as the h/w independent interface for
operating points.  PM core handles the h/w specific details for
defining the power parameters and setting the power parameters in h/w
registers.  Operating point definition/registration is now independent
of cpufreq.

Please note, that all userspace/kernel governor concepts, legacy sysfs cpufreq
interface remain untouched and SMP case is accounted in the resulting code as
well.

Highlights:

cpufreq.c
- get rid of cpufreq driver calls. the calls are replaced be calls to arch
independent freq_helpers (freq_helpers.c)
- available frequences sysfs interface now can be handled in arch independent
way
- cpufreq_sysdev_driver now serves only cpufreq core internad needs upon cpu
add/remove events (since all hw related is handled by PM Core)
- cpufreq_powerop_call() is added to handle operting point registration in the
kernel by an independent module at arbitrary moment

freq_table.c (now freq_helpers.c)
- get rid of cpufreq_frequency_table structures as input parameter and made the
code arch independent by leveraging PowerOP interface
- routine remain the same but are no longer used by arch dependent code but by
cpufreq core arch independent code instead
- all routines are arch independent; the only shared knowledge is platform
power pameter names (string)
- target() method expects power parameter names "freqN", "vN" are supported by
PM Core for cpu N
- setpolisy() method expects power parameter anmes "hfreqN", "lfreqN", "vN" are
supported by PM Core for cpu N

^ permalink raw reply	[flat|nested] 60+ messages in thread

end of thread, other threads:[~2007-03-20 23:29 UTC | newest]

Thread overview: 60+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-14 22:08 Alternative Concept Scott E. Preece
2007-03-14 23:23 ` David Brownell
2007-03-15  7:25   ` Ikhwan Lee
2007-03-15  8:14     ` Amit Kucheria
2007-03-15 10:55       ` Eugeny S. Mints
2007-03-15 10:46     ` Eugeny S. Mints
2007-03-15 10:33   ` Eugeny S. Mints
  -- strict thread matches above, loose matches on Subject: below --
2007-03-19 14:12 Scott E. Preece
2007-03-20  7:56 ` David Brownell
2007-03-20 14:26   ` Amit Kucheria
2007-03-20 15:08     ` Dmitry Krivoschekov
2007-03-20 17:04       ` David Brownell
2007-03-15 14:00 Scott E. Preece
2007-03-15 14:38 ` Eugeny S. Mints
2007-03-15 17:33 ` Woodruff, Richard
2007-03-15 13:29 Scott E. Preece
2007-03-15 23:07 ` David Brownell
2007-03-15 13:21 Scott E. Preece
2006-08-24  1:23 [RFC] CPUFreq PowerOP integration, Intro 0/3 Eugeny S. Mints
2006-10-07  2:36 ` Alternative Concept [Was: Re: [RFC] CPUFreq PowerOP integration, Intro 0/3] Dominik Brodowski
2007-03-13  0:57   ` Alternative Concept Matthew Locke
2007-03-13 11:08     ` Pavel Machek
2007-03-13 20:34       ` Mark Gross
2007-03-14  2:30         ` Ikhwan Lee
2007-03-14 10:43           ` Eugeny S. Mints
2007-03-14 17:19             ` David Brownell
2007-03-14 18:12               ` Igor Stoppa
2007-03-14 18:45                 ` David Brownell
2007-03-15  9:53               ` Eugeny S. Mints
2007-03-15 13:04                 ` Igor Stoppa
2007-03-16  2:21                   ` David Brownell
2007-03-16  3:56                     ` Ikhwan Lee
2007-03-16  6:17                       ` David Brownell
2007-03-19  2:27                         ` Ikhwan Lee
2007-03-19  6:07                           ` David Brownell
2007-03-16 13:06                     ` Dmitry Krivoschekov
2007-03-16 18:03                       ` David Brownell
2007-03-18 20:25                         ` Dmitry Krivoschekov
2007-03-19  4:04                           ` David Brownell
2007-03-20  0:03                             ` Dmitry Krivoschekov
2007-03-20  8:07                               ` David Brownell
2007-03-20  9:45                                 ` Dmitry Krivoschekov
2007-03-20 10:30                                   ` Igor Stoppa
2007-03-20 12:13                                     ` Eugeny S. Mints
2007-03-20 12:39                                       ` Igor Stoppa
2007-03-20 13:44                                         ` Dmitry Krivoschekov
2007-03-20 21:03                                         ` David Brownell
2007-03-20 13:07                                     ` Dmitry Krivoschekov
2007-03-20 13:52                                       ` Igor Stoppa
2007-03-20 14:58                                         ` Dmitry Krivoschekov
2007-03-20 15:36                                           ` Pavel Machek
2007-03-20 19:16                                             ` Dmitry Krivoschekov
2007-03-20 20:45                                               ` Pavel Machek
2007-03-20 22:04                                                 ` David Brownell
2007-03-20 22:06                                                   ` Pavel Machek
2007-03-20 23:29                                                     ` David Brownell
2007-03-20 15:36                                           ` Igor Stoppa
2007-03-20 19:17                                             ` Dmitry Krivoschekov
2007-03-20 20:17                                             ` David Brownell
2007-03-20 20:21                                       ` David Brownell
2007-03-20 19:58                                   ` David Brownell
2007-03-14  3:19       ` Dominik Brodowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox