public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
* PM QoS dynamic resource manager
@ 2010-05-21 21:37 Chidambaram, Praveen
  2010-05-25 14:52 ` mark gross
  0 siblings, 1 reply; 25+ messages in thread
From: Chidambaram, Praveen @ 2010-05-21 21:37 UTC (permalink / raw)
  To: linux-pm

Hi,

I am looking for some extensible features for PM QoS. Specifically, 
dynamic runtime parameters that my architecture could define at 
runtime and the drivers can make use of. 

What are the plans in this regard?

Thanks,
Praveen

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

* Re: PM QoS dynamic resource manager
  2010-05-21 21:37 PM QoS dynamic resource manager Chidambaram, Praveen
@ 2010-05-25 14:52 ` mark gross
  2010-05-25 16:19   ` Chidambaram, Praveen
  2010-06-08  0:18   ` Mike Chan
  0 siblings, 2 replies; 25+ messages in thread
From: mark gross @ 2010-05-25 14:52 UTC (permalink / raw)
  To: Chidambaram, Praveen; +Cc: linux-pm, markgross

On Fri, May 21, 2010 at 03:37:39PM -0600, Chidambaram, Praveen wrote:
> Hi,
> 
> I am looking for some extensible features for PM QoS. Specifically, 
> dynamic runtime parameters that my architecture could define at 
> runtime and the drivers can make use of. 
> 
> What are the plans in this regard?

we've talked about it a few times in the past.  

It's come down to how do we prevent platform independent code from
depending on such platform independent dynamic prarams in a sane manner.

I've alway's pushed for coming up with more reasonable abstractions that
could be re-used and adding them (like the bus thing) as opposed to
having drivers make / use new parrameters dynamically.

--mgross

> 
> Thanks,
> Praveen
> _______________________________________________
> linux-pm mailing list
> linux-pm@lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/linux-pm

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

* Re: PM QoS dynamic resource manager
  2010-05-25 14:52 ` mark gross
@ 2010-05-25 16:19   ` Chidambaram, Praveen
  2010-06-08  0:18   ` Mike Chan
  1 sibling, 0 replies; 25+ messages in thread
From: Chidambaram, Praveen @ 2010-05-25 16:19 UTC (permalink / raw)
  To: mark gross; +Cc: linux-pm, markgross

Thanks Mark.

I do understand your concern about having static paramters for the 
system, makes it more usuable across architectures. 

My requirement is drivers would want something like what PM QoS 
provides for their driver - (aggregation/max/min) of requests and pass 
on the final value to the driver for that specific driver. Writing it 
out for every driver is a duplication of code when PM QoS already 
provides this as a framework.

If a subsytem wants to use the driver they can use PM QoS with the 
published driver-specific QoS param. If the driver does not exist, ie, 
the param is not defined then they get the error code back. I do have 
something that has been written for arch/arm/mach-msm (it is arch 
agnostic though). I would like to invite you to take a look at the 
link below.

https://www.codeaurora.org/gitweb/quic/la/?p=kernel/msm.git;a=blob;f=Documentation/arm/msm/npa.txt;h=b5134041be1e6109b86179085db8aee19960c5dc;hb=android-msm-2.6.32
The implementation is in arch/arm/mach-msm/npa.c

I would like to bring in some key features that NPA has into PM QoS. 
NPA complements PM QoS in a way that it is completely dynamic and 
supports multiple params (known as resources/nodes). The essence of 
the framework is same as PM QoS - requests can be made by sub-systems 
and the framework aggregates or calculates the final value (the 
function to do this can be driver specific or framework pre-defined 
library) and the result is then passed on to the driver. In addition, 
the NPA framework supports aliasing of params (a 'system bus' on one 
architecture can mean one thing and on an other can reference another 
resource) and would be abstracted from the users. Dependencies between 
params can also be specified. The document also specifies 'remoting', 
which we can ignore it as it is just a layer over the framework.

I am interested in bringing in some of these features into PM QoS. Let 
me know what you think.

Thanks,
Praveen




On Tue, 25 May 2010 8:52am, mark gross <640e9920@gmail.com> wrote:
> On Fri, May 21, 2010 at 03:37:39PM -0600, Chidambaram, Praveen wrote:
> > Hi,
> > 
> > I am looking for some extensible features for PM QoS. Specifically, 
> > dynamic runtime parameters that my architecture could define at 
> > runtime and the drivers can make use of. 
> > 
> > What are the plans in this regard?
> 
> we've talked about it a few times in the past.  
> 
> It's come down to how do we prevent platform independent code from
> depending on such platform independent dynamic prarams in a sane manner.
> 
> I've alway's pushed for coming up with more reasonable abstractions that
> could be re-used and adding them (like the bus thing) as opposed to
> having drivers make / use new parrameters dynamically.
> 
> --mgross
> 
> > 
> > Thanks,
> > Praveen
> > _______________________________________________
> > linux-pm mailing list
> > linux-pm@lists.linux-foundation.org
> > https://lists.linux-foundation.org/mailman/listinfo/linux-pm
> 

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

* Re: PM QoS dynamic resource manager
  2010-05-25 14:52 ` mark gross
  2010-05-25 16:19   ` Chidambaram, Praveen
@ 2010-06-08  0:18   ` Mike Chan
  2010-06-08  3:33     ` mark gross
  1 sibling, 1 reply; 25+ messages in thread
From: Mike Chan @ 2010-06-08  0:18 UTC (permalink / raw)
  To: mark gross; +Cc: linux-pm, markgross

On Tue, May 25, 2010 at 7:52 AM, mark gross <640e9920@gmail.com> wrote:
> On Fri, May 21, 2010 at 03:37:39PM -0600, Chidambaram, Praveen wrote:
>> Hi,
>>
>> I am looking for some extensible features for PM QoS. Specifically,
>> dynamic runtime parameters that my architecture could define at
>> runtime and the drivers can make use of.
>>
>> What are the plans in this regard?
>
> we've talked about it a few times in the past.
>
> It's come down to how do we prevent platform independent code from
> depending on such platform independent dynamic prarams in a sane manner.
>
> I've alway's pushed for coming up with more reasonable abstractions that
> could be re-used and adding them (like the bus thing) as opposed to
> having drivers make / use new parrameters dynamically.
>

Would it be possible to elaborate on the bus resource ideas you had? I
couldn't find anything in the archives. Sounds like a similar that we
(Android / embedded world) are having (or will) on multiple platforms
(omap / msm/ tegra).

-- Mike

> --mgross
>
>>
>> Thanks,
>> Praveen
>> _______________________________________________
>> linux-pm mailing list
>> linux-pm@lists.linux-foundation.org
>> https://lists.linux-foundation.org/mailman/listinfo/linux-pm
> _______________________________________________
> linux-pm mailing list
> linux-pm@lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/linux-pm
>

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

* Re: PM QoS dynamic resource manager
  2010-06-08  0:18   ` Mike Chan
@ 2010-06-08  3:33     ` mark gross
  2010-06-08 14:44       ` Chidambaram, Praveen
  2010-06-08 18:58       ` Mike Chan
  0 siblings, 2 replies; 25+ messages in thread
From: mark gross @ 2010-06-08  3:33 UTC (permalink / raw)
  To: Mike Chan; +Cc: linux-pm, mark gross, markgross

On Mon, Jun 07, 2010 at 05:18:25PM -0700, Mike Chan wrote:
> On Tue, May 25, 2010 at 7:52 AM, mark gross <640e9920@gmail.com> wrote:
> > On Fri, May 21, 2010 at 03:37:39PM -0600, Chidambaram, Praveen wrote:
> >> Hi,
> >>
> >> I am looking for some extensible features for PM QoS. Specifically,
> >> dynamic runtime parameters that my architecture could define at
> >> runtime and the drivers can make use of.
> >>
> >> What are the plans in this regard?
> >
> > we've talked about it a few times in the past.
> >
> > It's come down to how do we prevent platform independent code from
> > depending on such platform independent dynamic prarams in a sane manner.
> >
> > I've alway's pushed for coming up with more reasonable abstractions that
> > could be re-used and adding them (like the bus thing) as opposed to
> > having drivers make / use new parrameters dynamically.
> >
> 
> Would it be possible to elaborate on the bus resource ideas you had? I
> couldn't find anything in the archives. Sounds like a similar that we
> (Android / embedded world) are having (or will) on multiple platforms
> (omap / msm/ tegra).
> 
> -- Mike

Its been 5 months since the last time this basic discussion happened,
and I'll do some searching for the thread later but;

But the bus thing we did post a patch to get the code aurora idea
included, but for some reason that patch didn't stick.
http://lkml.org/lkml/2010/4/22/213  (I guess the details are in the
archives)  I'm happy to re-visit it.

WRT ideas I've had, that went unsupported (well, rejected) by the domain
experts at that time, where around throttling the GPU and / or it access
to the memory it used.

Most of the ideas where around clock throttling of buses and memory.
Things like throttling the graphics BW to whatever memory it was using,
or clocking down the GPU when idle.  My thought was a pm_qos hint could
be handy, but I was assured that modern hardware auto-throttled and
didn't need this.  So I dropped it.  (At that time I also thought it
would apply to HD audio to allow better DAC throttling.  I also dropped
this one too for the same reasons.)

One problem was what type of units to use when talking about the qos of
the graphics was not obvious.  It needs to be something meaningful to
be portable or provide a good abstraction.

Bus bandwidth in KBS is ok for somethings but its not meaningful to an
application that wants to request a specific minimum graphics
performance.  As I type this I suppose a bandwidth for blts per
second would work for the current Android graphics but for os stacks
that more fully use the GL engine or games running on android I don't
think that its a meaningful metric for describing GPU performance
throttling. 

what ideas do you have?  I would like to seem more pm_qos users.

--mgross

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

* Re: PM QoS dynamic resource manager
  2010-06-08  3:33     ` mark gross
@ 2010-06-08 14:44       ` Chidambaram, Praveen
  2010-06-09  2:55         ` mark gross
  2010-06-08 18:58       ` Mike Chan
  1 sibling, 1 reply; 25+ messages in thread
From: Chidambaram, Praveen @ 2010-06-08 14:44 UTC (permalink / raw)
  To: markgross; +Cc: kheitke, mark gross, linux-pm

> Most of the ideas where around clock throttling of buses and memory.
> Things like throttling the graphics BW to whatever memory it was using,
> or clocking down the GPU when idle.  My thought was a pm_qos hint could
> be handy, but I was assured that modern hardware auto-throttled and
> didn't need this.  So I dropped it.  (At that time I also thought it
> would apply to HD audio to allow better DAC throttling.  I also dropped
> this one too for the same reasons.)

Yes, auto throttling by tying the Bus clock in relation to the CPU is 
a fairly good idea, but cannot be the only solution. The drivers know 
best their requirements and some drivers would need arbirated 
bandwidth that no one else can encroach on.

> One problem was what type of units to use when talking about the qos of
> the graphics was not obvious.  It needs to be something meaningful to  
> be portable or provide a good abstraction.

With PM QoS you can specify one parameter. However, a single parameter 
is quite insufficient. To specify bus bandwidth (say MBPS), we would 
need 2 dimensional values. Buses are getting complex and the arbiters 
that sit around them can make good decisions when they are fed the 
right data. The clock speed is just one of them. To allocate a 
bandwidth to a specific client, you would need to specify the amount 
of data to be transferred and when transferred, the amount of data in 
burst that need to be transferred would help in specifying the speed 
for each transaction. The clock speed can be deduced by the 
arbiter/driver from these two inputs.

> One problem was what type of units to use when talking about the qos of
> the graphics was not obvious.  It needs to be something meaningful to
> be portable or provide a good abstraction.

The units as we understand better are MBPS. They are something that 
drivers can calculate before they make a request and request the 
Bandwidth and the burst bandwidth to the arbiter.

What do you think about vector data inputs?

Thanks,
Praveen

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

* Re: PM QoS dynamic resource manager
  2010-06-08  3:33     ` mark gross
  2010-06-08 14:44       ` Chidambaram, Praveen
@ 2010-06-08 18:58       ` Mike Chan
  2010-06-08 23:03         ` Bryan Huntsman
  1 sibling, 1 reply; 25+ messages in thread
From: Mike Chan @ 2010-06-08 18:58 UTC (permalink / raw)
  To: markgross; +Cc: linux-pm, mark gross

On Mon, Jun 7, 2010 at 8:33 PM, mark gross <640e9920@gmail.com> wrote:
> On Mon, Jun 07, 2010 at 05:18:25PM -0700, Mike Chan wrote:
>> On Tue, May 25, 2010 at 7:52 AM, mark gross <640e9920@gmail.com> wrote:
>> > On Fri, May 21, 2010 at 03:37:39PM -0600, Chidambaram, Praveen wrote:
>> >> Hi,
>> >>
>> >> I am looking for some extensible features for PM QoS. Specifically,
>> >> dynamic runtime parameters that my architecture could define at
>> >> runtime and the drivers can make use of.
>> >>
>> >> What are the plans in this regard?
>> >
>> > we've talked about it a few times in the past.
>> >
>> > It's come down to how do we prevent platform independent code from
>> > depending on such platform independent dynamic prarams in a sane manner.
>> >
>> > I've alway's pushed for coming up with more reasonable abstractions that
>> > could be re-used and adding them (like the bus thing) as opposed to
>> > having drivers make / use new parrameters dynamically.
>> >
>>
>> Would it be possible to elaborate on the bus resource ideas you had? I
>> couldn't find anything in the archives. Sounds like a similar that we
>> (Android / embedded world) are having (or will) on multiple platforms
>> (omap / msm/ tegra).
>>
>> -- Mike
>
> Its been 5 months since the last time this basic discussion happened,
> and I'll do some searching for the thread later but;
>
> But the bus thing we did post a patch to get the code aurora idea
> included, but for some reason that patch didn't stick.
> http://lkml.org/lkml/2010/4/22/213  (I guess the details are in the
> archives)  I'm happy to re-visit it.
>

Interesting patch, it looks like having a "system wide bus" doesn't
easily apply to msm and tegra platforms.
An example of some things I would like to be able to control are i2c
and memory bus.

I'm tempted to suggest adding two types memory and i2c but I'm not
sure how future proof this will be given the growing complexity in the
embedded hardware road-map.
What about the possibility of registering not one but several buses?
You could add a bus qos param, with a type enum, or bind to some
platform_driver or bus_driver

Then there's the issue of having to deal with platform specific buses,
do you add this type to pm qos with only one user? Or have some
platform bus types defined somewhere. The generic code of min / max
for resource X can be useful so everyone doesn't spin their own
resource framework in their own architecture.

-- Mike

> WRT ideas I've had, that went unsupported (well, rejected) by the domain
> experts at that time, where around throttling the GPU and / or it access
> to the memory it used.
>
> Most of the ideas where around clock throttling of buses and memory.
> Things like throttling the graphics BW to whatever memory it was using,
> or clocking down the GPU when idle.  My thought was a pm_qos hint could
> be handy, but I was assured that modern hardware auto-throttled and
> didn't need this.  So I dropped it.  (At that time I also thought it
> would apply to HD audio to allow better DAC throttling.  I also dropped
> this one too for the same reasons.)
>
> One problem was what type of units to use when talking about the qos of
> the graphics was not obvious.  It needs to be something meaningful to
> be portable or provide a good abstraction.
>
> Bus bandwidth in KBS is ok for somethings but its not meaningful to an
> application that wants to request a specific minimum graphics
> performance.  As I type this I suppose a bandwidth for blts per
> second would work for the current Android graphics but for os stacks
> that more fully use the GL engine or games running on android I don't
> think that its a meaningful metric for describing GPU performance
> throttling.
>
> what ideas do you have?  I would like to seem more pm_qos users.
>
> --mgross
>
>

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

* Re: PM QoS dynamic resource manager
  2010-06-08 18:58       ` Mike Chan
@ 2010-06-08 23:03         ` Bryan Huntsman
  2010-06-08 23:35           ` Mike Chan
  2010-06-09  3:05           ` mark gross
  0 siblings, 2 replies; 25+ messages in thread
From: Bryan Huntsman @ 2010-06-08 23:03 UTC (permalink / raw)
  To: Mike Chan; +Cc: linux-pm, mark gross, markgross

>> http://lkml.org/lkml/2010/4/22/213  (I guess the details are in the
>> archives)  I'm happy to re-visit it.
>>
> 
> Interesting patch, it looks like having a "system wide bus" doesn't
> easily apply to msm and tegra platforms.
> An example of some things I would like to be able to control are i2c
> and memory bus.
> 
> I'm tempted to suggest adding two types memory and i2c but I'm not
> sure how future proof this will be given the growing complexity in the
> embedded hardware road-map.
> What about the possibility of registering not one but several buses?
> You could add a bus qos param, with a type enum, or bind to some
> platform_driver or bus_driver
> 
> Then there's the issue of having to deal with platform specific buses,
> do you add this type to pm qos with only one user? Or have some
> platform bus types defined somewhere. The generic code of min / max
> for resource X can be useful so everyone doesn't spin their own
> resource framework in their own architecture.
> 
> -- Mike

Mike, one idea I'm exploring is having platform-specific busses with QoS 
constraints specified via runtime_pm as part of the LDM.  Adding dynamic 
class creation within pm_qos, or a type enum as you suggest, would work. 
  However, I think this kind of behavior would fit nicely within runtime_pm.

- Bryan

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

* Re: PM QoS dynamic resource manager
  2010-06-08 23:03         ` Bryan Huntsman
@ 2010-06-08 23:35           ` Mike Chan
  2010-06-08 23:48             ` Bryan Huntsman
  2010-06-09  3:05           ` mark gross
  1 sibling, 1 reply; 25+ messages in thread
From: Mike Chan @ 2010-06-08 23:35 UTC (permalink / raw)
  To: Bryan Huntsman; +Cc: linux-pm, mark gross, markgross

On Tue, Jun 8, 2010 at 4:03 PM, Bryan Huntsman <bryanh@codeaurora.org> wrote:
>>> http://lkml.org/lkml/2010/4/22/213  (I guess the details are in the
>>> archives)  I'm happy to re-visit it.
>>>
>>
>> Interesting patch, it looks like having a "system wide bus" doesn't
>> easily apply to msm and tegra platforms.
>> An example of some things I would like to be able to control are i2c
>> and memory bus.
>>
>> I'm tempted to suggest adding two types memory and i2c but I'm not
>> sure how future proof this will be given the growing complexity in the
>> embedded hardware road-map.
>> What about the possibility of registering not one but several buses?
>> You could add a bus qos param, with a type enum, or bind to some
>> platform_driver or bus_driver
>>
>> Then there's the issue of having to deal with platform specific buses,
>> do you add this type to pm qos with only one user? Or have some
>> platform bus types defined somewhere. The generic code of min / max
>> for resource X can be useful so everyone doesn't spin their own
>> resource framework in their own architecture.
>>
>> -- Mike
>
> Mike, one idea I'm exploring is having platform-specific busses with QoS
> constraints specified via runtime_pm as part of the LDM.  Adding dynamic
> class creation within pm_qos, or a type enum as you suggest, would work.
>  However, I think this kind of behavior would fit nicely within runtime_pm.
>

I'm not too familiar with the current work in runtime pm and LDM.
However platform specific buses sounds like a good thing, at least
more future proof. This works in the embedded SOC world but I'm
wondering what happens when you have re-configurable hardware and now
your same peripheral is sourcing a different bus?

Does runtime pm hook into pm qos similar to how cpuidle uses pm qos?
So the platform-specific buses would be aa pm rumtime or a pm qos
addition?

-- Mike

> - Bryan
>

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

* Re: PM QoS dynamic resource manager
  2010-06-08 23:35           ` Mike Chan
@ 2010-06-08 23:48             ` Bryan Huntsman
  0 siblings, 0 replies; 25+ messages in thread
From: Bryan Huntsman @ 2010-06-08 23:48 UTC (permalink / raw)
  To: Mike Chan; +Cc: linux-pm, mark gross, markgross

>> Mike, one idea I'm exploring is having platform-specific busses with QoS
>> constraints specified via runtime_pm as part of the LDM.  Adding dynamic
>> class creation within pm_qos, or a type enum as you suggest, would work.
>>  However, I think this kind of behavior would fit nicely within runtime_pm.
>>
> 
> I'm not too familiar with the current work in runtime pm and LDM.
> However platform specific buses sounds like a good thing, at least
> more future proof. This works in the embedded SOC world but I'm
> wondering what happens when you have re-configurable hardware and now
> your same peripheral is sourcing a different bus?

My current thought is to have the board file enumerate the device on the 
proper bus.  This configuration is target-specific.  Each driver would 
register on as many buses as it needs to.  Some of the driver/bus 
registrations would be extraneous but the driver/device binding would 
only be possible on one bus.

> Does runtime pm hook into pm qos similar to how cpuidle uses pm qos?
> So the platform-specific buses would be aa pm rumtime or a pm qos
> addition?
> 
> -- Mike

Not to my knowledge.  I'm considering modeling the runtime_pm 
enhancements after pm_qos.  Meaning, there would be additional 
add/update/remove_requirements() callbacks added to struct dev_pm_ops 
for runtime_pm.  Instead of having a system-wide QoS sink per QoS class, 
the requirements would be passed up the LDM tree.  This way, a bus 
driver would be able to receive QoS constraints from all of it's devices 
and, combined with the active state of it's children from runtime_pm, be 
able to do some useful power management.  The entire bus could be 
throttled or idled in this manner.  This scheme would require the SW 
device topology to match the HW topology and not just have everything 
hang off the platform bus.

- Bryan

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

* Re: PM QoS dynamic resource manager
  2010-06-08 14:44       ` Chidambaram, Praveen
@ 2010-06-09  2:55         ` mark gross
  0 siblings, 0 replies; 25+ messages in thread
From: mark gross @ 2010-06-09  2:55 UTC (permalink / raw)
  To: Chidambaram, Praveen; +Cc: kheitke, linux-pm, mark gross, markgross

On Tue, Jun 08, 2010 at 08:44:30AM -0600, Chidambaram, Praveen wrote:
> > Most of the ideas where around clock throttling of buses and memory.
> > Things like throttling the graphics BW to whatever memory it was using,
> > or clocking down the GPU when idle.  My thought was a pm_qos hint could
> > be handy, but I was assured that modern hardware auto-throttled and
> > didn't need this.  So I dropped it.  (At that time I also thought it
> > would apply to HD audio to allow better DAC throttling.  I also dropped
> > this one too for the same reasons.)
> 
> Yes, auto throttling by tying the Bus clock in relation to the CPU is 
> a fairly good idea, but cannot be the only solution. The drivers know 
> best their requirements and some drivers would need arbirated 
> bandwidth that no one else can encroach on.
> 
> > One problem was what type of units to use when talking about the qos of
> > the graphics was not obvious.  It needs to be something meaningful to  
> > be portable or provide a good abstraction.
> 
> With PM QoS you can specify one parameter. However, a single parameter 
> is quite insufficient. To specify bus bandwidth (say MBPS), we would 
> need 2 dimensional values. Buses are getting complex and the arbiters 
> that sit around them can make good decisions when they are fed the 
> right data. The clock speed is just one of them. To allocate a 
> bandwidth to a specific client, you would need to specify the amount 
> of data to be transferred and when transferred, the amount of data in 
> burst that need to be transferred would help in specifying the speed 
> for each transaction. The clock speed can be deduced by the 
> arbiter/driver from these two inputs.
> 
> > One problem was what type of units to use when talking about the qos of
> > the graphics was not obvious.  It needs to be something meaningful to
> > be portable or provide a good abstraction.
> 
> The units as we understand better are MBPS. They are something that 
> drivers can calculate before they make a request and request the 
> Bandwidth and the burst bandwidth to the arbiter.
> 
> What do you think about vector data inputs?
>
I think functional (as in functional programming) as pm_qos constraints
are an interesting science experiment and, mostly doable for simple
functions.  But on face level feel pretty complicated to me, and need a
good, easy to understand application or example to get the idea across.

I can imagine some multi-dimensional constraints, (mostly in the space of
limited power budgets and graceful degradation under limited load /
brown out situations.)  But that stuff is not QOS as much as an
optimization zero sum game problem.

So I think vector data inputs into a qos parameter needs clear
motivation.   yet interesting to think about.

--mgross


 

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

* Re: PM QoS dynamic resource manager
  2010-06-08 23:03         ` Bryan Huntsman
  2010-06-08 23:35           ` Mike Chan
@ 2010-06-09  3:05           ` mark gross
  2010-06-10  0:53             ` Mike Chan
  2010-06-11 14:12             ` Kevin Hilman
  1 sibling, 2 replies; 25+ messages in thread
From: mark gross @ 2010-06-09  3:05 UTC (permalink / raw)
  To: Bryan Huntsman; +Cc: linux-pm, mark gross, markgross

On Tue, Jun 08, 2010 at 04:03:20PM -0700, Bryan Huntsman wrote:
> >>http://lkml.org/lkml/2010/4/22/213  (I guess the details are in the
> >>archives)  I'm happy to re-visit it.
> >>
> >
> >Interesting patch, it looks like having a "system wide bus" doesn't
> >easily apply to msm and tegra platforms.
> >An example of some things I would like to be able to control are i2c
> >and memory bus.
> >
> >I'm tempted to suggest adding two types memory and i2c but I'm not
> >sure how future proof this will be given the growing complexity in the
> >embedded hardware road-map.
> >What about the possibility of registering not one but several buses?
> >You could add a bus qos param, with a type enum, or bind to some
> >platform_driver or bus_driver
> >
> >Then there's the issue of having to deal with platform specific buses,
> >do you add this type to pm qos with only one user? Or have some
> >platform bus types defined somewhere. The generic code of min / max
> >for resource X can be useful so everyone doesn't spin their own
> >resource framework in their own architecture.
> >
> >-- Mike
> 
> Mike, one idea I'm exploring is having platform-specific busses with
> QoS constraints specified via runtime_pm as part of the LDM.  Adding
> dynamic class creation within pm_qos, or a type enum as you suggest,
> would work.  However, I think this kind of behavior would fit nicely
> within runtime_pm.
>

Something like that is what Kevin Hilman was thinking too.  It would
bring a qos concept to the LDM for each bus driver object.  Picking what
qos parameters to use (I recommend latency and bandwidth) and how "local"
the parameters effect of these bus_qos interfaces are.  

They are not the same as the more global system wide pm_qos parameters,
and they would be unlikely things ever exposed to usermode.

Yes I think something like this is inevitable and will happen.  But we
need some good applications to roll out the idea with.  (I think.)

--mgross
 

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

* Re: PM QoS dynamic resource manager
  2010-06-09  3:05           ` mark gross
@ 2010-06-10  0:53             ` Mike Chan
  2010-06-10  1:22               ` Bryan Huntsman
  2010-06-11 13:55               ` mark gross
  2010-06-11 14:12             ` Kevin Hilman
  1 sibling, 2 replies; 25+ messages in thread
From: Mike Chan @ 2010-06-10  0:53 UTC (permalink / raw)
  To: markgross; +Cc: linux-pm, mark gross

On Tue, Jun 8, 2010 at 8:05 PM, mark gross <640e9920@gmail.com> wrote:
> On Tue, Jun 08, 2010 at 04:03:20PM -0700, Bryan Huntsman wrote:
>> >>http://lkml.org/lkml/2010/4/22/213  (I guess the details are in the
>> >>archives)  I'm happy to re-visit it.
>> >>
>> >
>> >Interesting patch, it looks like having a "system wide bus" doesn't
>> >easily apply to msm and tegra platforms.
>> >An example of some things I would like to be able to control are i2c
>> >and memory bus.
>> >
>> >I'm tempted to suggest adding two types memory and i2c but I'm not
>> >sure how future proof this will be given the growing complexity in the
>> >embedded hardware road-map.
>> >What about the possibility of registering not one but several buses?
>> >You could add a bus qos param, with a type enum, or bind to some
>> >platform_driver or bus_driver
>> >
>> >Then there's the issue of having to deal with platform specific buses,
>> >do you add this type to pm qos with only one user? Or have some
>> >platform bus types defined somewhere. The generic code of min / max
>> >for resource X can be useful so everyone doesn't spin their own
>> >resource framework in their own architecture.
>> >
>> >-- Mike
>>
>> Mike, one idea I'm exploring is having platform-specific busses with
>> QoS constraints specified via runtime_pm as part of the LDM.  Adding
>> dynamic class creation within pm_qos, or a type enum as you suggest,
>> would work.  However, I think this kind of behavior would fit nicely
>> within runtime_pm.
>>
>
> Something like that is what Kevin Hilman was thinking too.  It would
> bring a qos concept to the LDM for each bus driver object.  Picking what
> qos parameters to use (I recommend latency and bandwidth) and how "local"
> the parameters effect of these bus_qos interfaces are.
>

Are you thinking of having a (possible) pm qos constraint for each
struct device_driver? Or struct bus_type ? This would probably work if
for something like i2c. I'm not sure how this would work for memory
bus. If you did not want to tie memory bus performance to cpu speeds,
since (at least from what I"ve seen in omap / msm / tegra) there's no
device_driver for a memory bus clock, but I could be wrong so someone
correct me if I'm mistaken.

Typically I've seen (on msm / tegra / omap) if cpu is running at
frequency X, then set mem bus clock to Y. Which leads to a bunch of
hacks with drivers requesting frequency X, when really they need the
faster memory speed.

Perhaps both per bus-type pm qos parameter as well as a new global
memory bus (per cpu for numa systems?) parameter.

I'm worried about trying to over-engineer a solution here for
non-existing (or non-interested) customers. Ideally something that
will fit our needs with Android on msm / omap / tegra platforms but
still flexible enough for non-SOC.

-- Mike

> They are not the same as the more global system wide pm_qos parameters,
> and they would be unlikely things ever exposed to usermode.
>

I don't think we care about exposing this to userspace for our needs.

> Yes I think something like this is inevitable and will happen.  But we
> need some good applications to roll out the idea with.  (I think.)
>



> --mgross
>
>

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

* Re: PM QoS dynamic resource manager
  2010-06-10  0:53             ` Mike Chan
@ 2010-06-10  1:22               ` Bryan Huntsman
  2010-06-11 13:55               ` mark gross
  1 sibling, 0 replies; 25+ messages in thread
From: Bryan Huntsman @ 2010-06-10  1:22 UTC (permalink / raw)
  To: Mike Chan; +Cc: linux-pm, mark gross, markgross

> Are you thinking of having a (possible) pm qos constraint for each
> struct device_driver? Or struct bus_type ? This would probably work if
> for something like i2c. I'm not sure how this would work for memory
> bus. If you did not want to tie memory bus performance to cpu speeds,
> since (at least from what I"ve seen in omap / msm / tegra) there's no
> device_driver for a memory bus clock, but I could be wrong so someone
> correct me if I'm mistaken.

I'm imagining QoS classes similar to pm_qos.  Bandwidth, cpu latency, 
etc.  Each driver decides what to do for each type, if anything.  This 
gets passed up the tree and aggregated by a parent, which I think would 
be a bus driver but could be anyone who cares.  The QoS sink, for lack 
of a better term, decides what it wants to do with that data.  For a 
memory bus, it would be possible to add up all bandwidth requests and 
scale the bus clock accordingly.  It could also look at the active 
status of it's children, decide that the bus is inactive, and completely 
shut it off.  This is where having arch-specific bus drivers is 
necessary.  What each QoS sink does will vary drastically from platform 
to platform, but the input data should be somewhat consistent.  That's 
why I'm looking into extending runtime_pm in this manner.

> Typically I've seen (on msm / tegra / omap) if cpu is running at
> frequency X, then set mem bus clock to Y. Which leads to a bunch of
> hacks with drivers requesting frequency X, when really they need the
> faster memory speed.

Picking the right QoS constraints will always be a problem.  It's 
possible to abuse pm_qos today in the same manner.

> Perhaps both per bus-type pm qos parameter as well as a new global
> memory bus (per cpu for numa systems?) parameter.
> 
> I'm worried about trying to over-engineer a solution here for
> non-existing (or non-interested) customers. Ideally something that
> will fit our needs with Android on msm / omap / tegra platforms but
> still flexible enough for non-SOC.
> 
> -- Mike

In general, I share your dislike for over-engineering.  This doesn't 
feel like that quite yet.  From a high level at least, it would seem to 
fit in nicely with runtime_pm.  From Mark's comments it sounds like 
others are having similar thoughts.

- Bryan

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

* Re: PM QoS dynamic resource manager
  2010-06-10  0:53             ` Mike Chan
  2010-06-10  1:22               ` Bryan Huntsman
@ 2010-06-11 13:55               ` mark gross
  1 sibling, 0 replies; 25+ messages in thread
From: mark gross @ 2010-06-11 13:55 UTC (permalink / raw)
  To: Mike Chan; +Cc: linux-pm, mark gross, markgross

On Wed, Jun 09, 2010 at 05:53:53PM -0700, Mike Chan wrote:
> On Tue, Jun 8, 2010 at 8:05 PM, mark gross <640e9920@gmail.com> wrote:
> > On Tue, Jun 08, 2010 at 04:03:20PM -0700, Bryan Huntsman wrote:
> >> >>http://lkml.org/lkml/2010/4/22/213  (I guess the details are in the
> >> >>archives)  I'm happy to re-visit it.
> >> >>
> >> >
> >> >Interesting patch, it looks like having a "system wide bus" doesn't
> >> >easily apply to msm and tegra platforms.
> >> >An example of some things I would like to be able to control are i2c
> >> >and memory bus.
> >> >
> >> >I'm tempted to suggest adding two types memory and i2c but I'm not
> >> >sure how future proof this will be given the growing complexity in the
> >> >embedded hardware road-map.
> >> >What about the possibility of registering not one but several buses?
> >> >You could add a bus qos param, with a type enum, or bind to some
> >> >platform_driver or bus_driver
> >> >
> >> >Then there's the issue of having to deal with platform specific buses,
> >> >do you add this type to pm qos with only one user? Or have some
> >> >platform bus types defined somewhere. The generic code of min / max
> >> >for resource X can be useful so everyone doesn't spin their own
> >> >resource framework in their own architecture.
> >> >
> >> >-- Mike
> >>
> >> Mike, one idea I'm exploring is having platform-specific busses with
> >> QoS constraints specified via runtime_pm as part of the LDM.  Adding
> >> dynamic class creation within pm_qos, or a type enum as you suggest,
> >> would work.  However, I think this kind of behavior would fit nicely
> >> within runtime_pm.
> >>
> >
> > Something like that is what Kevin Hilman was thinking too.  It would
> > bring a qos concept to the LDM for each bus driver object.  Picking what
> > qos parameters to use (I recommend latency and bandwidth) and how "local"
> > the parameters effect of these bus_qos interfaces are.
> >
> 
> Are you thinking of having a (possible) pm qos constraint for each
> struct device_driver? Or struct bus_type ? This would probably work if

I'm thinking ever struct bus_type at the moment, but really this is
somehting hat has been getting handwaving at so far.

> for something like i2c. I'm not sure how this would work for memory
> bus. If you did not want to tie memory bus performance to cpu speeds,
> since (at least from what I"ve seen in omap / msm / tegra) there's no
> device_driver for a memory bus clock, but I could be wrong so someone
> correct me if I'm mistaken.

it hasn't been thought out yet by me yet, WRT dependency expressions
that have more global scope than a given bus like what I think you are
talking about.

--mgross

> 
> Typically I've seen (on msm / tegra / omap) if cpu is running at
> frequency X, then set mem bus clock to Y. Which leads to a bunch of
> hacks with drivers requesting frequency X, when really they need the
> faster memory speed.
> 
> Perhaps both per bus-type pm qos parameter as well as a new global
> memory bus (per cpu for numa systems?) parameter.
> 
> I'm worried about trying to over-engineer a solution here for
> non-existing (or non-interested) customers. Ideally something that
> will fit our needs with Android on msm / omap / tegra platforms but
> still flexible enough for non-SOC.
> 
> -- Mike
> 
> > They are not the same as the more global system wide pm_qos parameters,
> > and they would be unlikely things ever exposed to usermode.
> >
> 
> I don't think we care about exposing this to userspace for our needs.
> 
> > Yes I think something like this is inevitable and will happen.  But we
> > need some good applications to roll out the idea with.  (I think.)
> >
> 
> 
> 
> > --mgross
> >
> >

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

* Re: PM QoS dynamic resource manager
  2010-06-09  3:05           ` mark gross
  2010-06-10  0:53             ` Mike Chan
@ 2010-06-11 14:12             ` Kevin Hilman
  2010-06-17 22:32               ` Kevin Hilman
  1 sibling, 1 reply; 25+ messages in thread
From: Kevin Hilman @ 2010-06-11 14:12 UTC (permalink / raw)
  To: markgross; +Cc: mark gross, linux-pm

On Tue, 2010-06-08 at 20:05 -0700, mark gross wrote:
> On Tue, Jun 08, 2010 at 04:03:20PM -0700, Bryan Huntsman wrote:
> > 
> > Mike, one idea I'm exploring is having platform-specific busses with
> > QoS constraints specified via runtime_pm as part of the LDM.  Adding
> > dynamic class creation within pm_qos, or a type enum as you suggest,
> > would work.  However, I think this kind of behavior would fit nicely
> > within runtime_pm.
> >
> 
> Something like that is what Kevin Hilman was thinking too.  It would
> bring a qos concept to the LDM for each bus driver object.  

Yes, I definitely have some thoughts/ideas in this direction and is what
we are doing on OMAP.  I've been on the road, so I will chime in more on
this next week when I get back...

Kevin

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

* Re: PM QoS dynamic resource manager
  2010-06-11 14:12             ` Kevin Hilman
@ 2010-06-17 22:32               ` Kevin Hilman
  2010-06-18  5:57                 ` Huntsman, Bryan
  2010-08-10 16:24                 ` Kevin Hilman
  0 siblings, 2 replies; 25+ messages in thread
From: Kevin Hilman @ 2010-06-17 22:32 UTC (permalink / raw)
  To: markgross; +Cc: mark gross, linux-pm

Kevin Hilman <khilman@deeprootsystems.com> writes:

> On Tue, 2010-06-08 at 20:05 -0700, mark gross wrote:
>> On Tue, Jun 08, 2010 at 04:03:20PM -0700, Bryan Huntsman wrote:
>> > 
>> > Mike, one idea I'm exploring is having platform-specific busses with
>> > QoS constraints specified via runtime_pm as part of the LDM.  Adding
>> > dynamic class creation within pm_qos, or a type enum as you suggest,
>> > would work.  However, I think this kind of behavior would fit nicely
>> > within runtime_pm.
>> >
>> 
>> Something like that is what Kevin Hilman was thinking too.  It would
>> bring a qos concept to the LDM for each bus driver object.  
>
> Yes, I definitely have some thoughts/ideas in this direction and is what
> we are doing on OMAP.  I've been on the road, so I will chime in more on
> this next week when I get back...

[apologies for the delay, travel has made it difficult to keep up with mail]

So below is an overview of how we are managing device-specific
latency/throughput on OMAP.  We are currently managing in an
OMAP-specific way, but I certainly see the value in generalizing this
into something managed at the 'struct device' level.

So this is obviously being used for device-specific constraints, but
on OMAP, we're also modeling the internal bus(ses) as special
"omap_device(s)" and we use constraints the bus "devices" for
throughput.

Bryan mentioned aggregating the constraints up to some parent where
platform-specific decisions can be made, and I am totally in support
of that.  On OMAP, we're aggregating the device latency constraints at
the time of a device idle (triggered by pm_runtime_idle().)  More
details on that in the below overview.

It would be great if we could all get together at one of the
conferences this year to talk through some of our ideas in more
detail.  I plan to be at ELC Europe (October in UK) and Linux Plumbers
(Nov in Boston) with a remote possibility of making it to LinuxCon
(Aug in Boston, which includes a PM mini-summit on Monday.)


-------------------------------------------------------------------

What we currently have in OMAP is a layer called omap_device.  A
struct omap_device contains a platform_device which contains a struct
device.

In the omap_device layer, each omap_device tracks it's actual wakeup
latency and also has a configurable maximum wakeup latency.  Drivers
or subsystems can set and change the maximum wakeup latency
dynamically, and the actual wakeup latency can be manually set when
the omap_device is registered (based on HW specs), or can be
dyamically measured at runtime (since we know how reliable said HW
specs can be.)

On OMAP, drivers usage of runtime PM will eventually trickle down to
calling omap_device_enable() or omap_device_idle().  These calls in
the omap_device API make the final decisions based comparing the
actual and requested wakeup latencies.

For example, runtime_pm_idle() will eventually call omap_device_idle()
for an omap_device.  In omap_device_idle(), if the wakeup latency of
that device is less than the currently requested maximum, the
'deactivate' hook for that latency level is called (which leads to the
HW-level magic to disable that device at the HW level.)  And of
course, if the wakeup latency for that device is longer than the
currently requested maximum, the deactivate hooks is not called.
Similarily on enable, if the devices current wakeup latency already
meets the requested maximum, nothing needs to change.  If it doesn't
the 'activate' hook is called so that it can meet the requested
maximum.

Thats a brief summary, but is a bit of an oversimplification.  The
actual omap_device code supports multiple latency levels
per-omap_device.  In both the _enable() and _idle() paths, the various
levels are traversed until one is found which meets the maximum wakeup
latency requirements.

Why would a device want multiple per-device latency levels?  As an
simple example, one level might simply be disabling the devices
clocks.  Another might also disable the PLL generating those clocks.
Another might be turning off the voltage regulator supplying power to
that device, etc. etc.  For each latency level, there are
configurable, platform-specific, activate and deactivate hooks that
can be used to do the actual work.

I hope that helps explain things, and feel free to peruse the code.
It's currently in mainline and part of the OMAP arch-specific code:

   arch/arm/plat-omap/omap_device.c
   arch/arm/plat-omap/include/plat/omap_device.h

Kevin

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

* Re: PM QoS dynamic resource manager
  2010-06-17 22:32               ` Kevin Hilman
@ 2010-06-18  5:57                 ` Huntsman, Bryan
  2010-06-22 23:34                   ` mark gross
  2010-07-18 12:57                   ` mark gross
  2010-08-10 16:24                 ` Kevin Hilman
  1 sibling, 2 replies; 25+ messages in thread
From: Huntsman, Bryan @ 2010-06-18  5:57 UTC (permalink / raw)
  To: Kevin Hilman, markgross@thegnar.org
  Cc: mark gross, linux-pm@lists.linux-foundation.org

> It would be great if we could all get together at one of the
> conferences this year to talk through some of our ideas in more
> detail.  I plan to be at ELC Europe (October in UK) and Linux Plumbers
> (Nov in Boston) with a remote possibility of making it to LinuxCon
> (Aug in Boston, which includes a PM mini-summit on Monday.)

I'm planning on attending LinuxCon and Plumbers.  I'll also be up at the Symposium.  A meetup at the PM mini-summit would be great if Mike and Brian S can make it.  Thanks.

- Bryan

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

* Re: PM QoS dynamic resource manager
  2010-06-18  5:57                 ` Huntsman, Bryan
@ 2010-06-22 23:34                   ` mark gross
  2010-07-18 12:57                   ` mark gross
  1 sibling, 0 replies; 25+ messages in thread
From: mark gross @ 2010-06-22 23:34 UTC (permalink / raw)
  To: Huntsman, Bryan
  Cc: mark gross, markgross@thegnar.org,
	linux-pm@lists.linux-foundation.org

On Thu, Jun 17, 2010 at 10:57:46PM -0700, Huntsman, Bryan wrote:
> > It would be great if we could all get together at one of the
> > conferences this year to talk through some of our ideas in more
> > detail.  I plan to be at ELC Europe (October in UK) and Linux Plumbers
> > (Nov in Boston) with a remote possibility of making it to LinuxCon
> > (Aug in Boston, which includes a PM mini-summit on Monday.)
> 
> I'm planning on attending LinuxCon and Plumbers.  I'll also be up at
> the Symposium.  A meetup at the PM mini-summit would be great if Mike
> and Brian S can make it.  Thanks.
>

I just checked with my boss at work.  It looks like I can get travel to
Plumbers this fall.  Lets try to have a couple of PM tracts around this
and the excitement over suspend blocking at plumbers.


--mgross
 

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

* Re: PM QoS dynamic resource manager
  2010-06-18  5:57                 ` Huntsman, Bryan
  2010-06-22 23:34                   ` mark gross
@ 2010-07-18 12:57                   ` mark gross
  2010-07-18 15:03                     ` James Bottomley
  1 sibling, 1 reply; 25+ messages in thread
From: mark gross @ 2010-07-18 12:57 UTC (permalink / raw)
  To: Huntsman, Bryan
  Cc: mark gross, markgross@thegnar.org,
	linux-pm@lists.linux-foundation.org

On Thu, Jun 17, 2010 at 10:57:46PM -0700, Huntsman, Bryan wrote:
> > It would be great if we could all get together at one of the
> > conferences this year to talk through some of our ideas in more
> > detail.  I plan to be at ELC Europe (October in UK) and Linux Plumbers
> > (Nov in Boston) with a remote possibility of making it to LinuxCon
> > (Aug in Boston, which includes a PM mini-summit on Monday.)
> 
> I'm planning on attending LinuxCon and Plumbers.  I'll also be up at
> the Symposium.  A meetup at the PM mini-summit would be great if Mike
> and Brian S can make it.  Thanks.
> 
> - Bryan

I will be going to plumbers I think a working session to get this type
of generalization of qos-like ideas into the LDM would be an interesting
thing to try to do.  I won't be able to lead or drive this topic
however.  one of you guys need to make the proposal for the working
session.

http://www.linuxplumbersconf.org/2010/07/07/linux-plumbers-conference-call-for-working-sessions-submissions

oh, we are running up against a July 19 deadline.

--mgross

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

* Re: PM QoS dynamic resource manager
  2010-07-18 12:57                   ` mark gross
@ 2010-07-18 15:03                     ` James Bottomley
  2010-07-19  1:46                       ` Rafael J. Wysocki
  0 siblings, 1 reply; 25+ messages in thread
From: James Bottomley @ 2010-07-18 15:03 UTC (permalink / raw)
  To: markgross
  Cc: Huntsman, Bryan, linux-pm@lists.linux-foundation.org, mark gross

On Sun, 2010-07-18 at 05:57 -0700, mark gross wrote:
> On Thu, Jun 17, 2010 at 10:57:46PM -0700, Huntsman, Bryan wrote:
> > > It would be great if we could all get together at one of the
> > > conferences this year to talk through some of our ideas in more
> > > detail.  I plan to be at ELC Europe (October in UK) and Linux Plumbers
> > > (Nov in Boston) with a remote possibility of making it to LinuxCon
> > > (Aug in Boston, which includes a PM mini-summit on Monday.)
> > 
> > I'm planning on attending LinuxCon and Plumbers.  I'll also be up at
> > the Symposium.  A meetup at the PM mini-summit would be great if Mike
> > and Brian S can make it.  Thanks.
> > 
> > - Bryan
> 
> I will be going to plumbers I think a working session to get this type
> of generalization of qos-like ideas into the LDM would be an interesting
> thing to try to do.  I won't be able to lead or drive this topic
> however.  one of you guys need to make the proposal for the working
> session.
> 
> http://www.linuxplumbersconf.org/2010/07/07/linux-plumbers-conference-call-for-working-sessions-submissions
> 
> oh, we are running up against a July 19 deadline.

For working sessions, this isn't quite true ... the 19 July deadline is
only for Refereed Presentations (i.e. the standard conference talks).
The deadline for Working Sessions (Or MicroConferences) is up to the MC
Session Leader (although in practise, the earlier you submit, the better
your chances) reflecting the fact that Linux is fast moving and things
may change at the last minute.  If you want a separate MC on PM_QOS,
then submit now ... we only have slots for about 12 MCs at plumbers, and
once those are filled we won't really be able to add additional ones.

James

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

* Re: PM QoS dynamic resource manager
  2010-07-18 15:03                     ` James Bottomley
@ 2010-07-19  1:46                       ` Rafael J. Wysocki
  2010-07-19  6:38                         ` James Bottomley
  0 siblings, 1 reply; 25+ messages in thread
From: Rafael J. Wysocki @ 2010-07-19  1:46 UTC (permalink / raw)
  To: linux-pm; +Cc: Huntsman, Bryan, James Bottomley, mark gross, markgross

On Sunday, July 18, 2010, James Bottomley wrote:
> On Sun, 2010-07-18 at 05:57 -0700, mark gross wrote:
> > On Thu, Jun 17, 2010 at 10:57:46PM -0700, Huntsman, Bryan wrote:
> > > > It would be great if we could all get together at one of the
> > > > conferences this year to talk through some of our ideas in more
> > > > detail.  I plan to be at ELC Europe (October in UK) and Linux Plumbers
> > > > (Nov in Boston) with a remote possibility of making it to LinuxCon
> > > > (Aug in Boston, which includes a PM mini-summit on Monday.)
> > > 
> > > I'm planning on attending LinuxCon and Plumbers.  I'll also be up at
> > > the Symposium.  A meetup at the PM mini-summit would be great if Mike
> > > and Brian S can make it.  Thanks.
> > > 
> > > - Bryan
> > 
> > I will be going to plumbers I think a working session to get this type
> > of generalization of qos-like ideas into the LDM would be an interesting
> > thing to try to do.  I won't be able to lead or drive this topic
> > however.  one of you guys need to make the proposal for the working
> > session.
> > 
> > http://www.linuxplumbersconf.org/2010/07/07/linux-plumbers-conference-call-for-working-sessions-submissions
> > 
> > oh, we are running up against a July 19 deadline.
> 
> For working sessions, this isn't quite true ... the 19 July deadline is
> only for Refereed Presentations (i.e. the standard conference talks).
> The deadline for Working Sessions (Or MicroConferences) is up to the MC
> Session Leader

OK, how do I figure out who's the one for the PM MC?

Rafael

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

* Re: PM QoS dynamic resource manager
  2010-07-19  1:46                       ` Rafael J. Wysocki
@ 2010-07-19  6:38                         ` James Bottomley
  2010-07-19 13:50                           ` Matthew Garrett
  0 siblings, 1 reply; 25+ messages in thread
From: James Bottomley @ 2010-07-19  6:38 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: Huntsman, Bryan, linux-pm, mark gross, markgross

On Mon, 2010-07-19 at 03:46 +0200, Rafael J. Wysocki wrote:
> On Sunday, July 18, 2010, James Bottomley wrote:
> > On Sun, 2010-07-18 at 05:57 -0700, mark gross wrote:
> > > On Thu, Jun 17, 2010 at 10:57:46PM -0700, Huntsman, Bryan wrote:
> > > > > It would be great if we could all get together at one of the
> > > > > conferences this year to talk through some of our ideas in more
> > > > > detail.  I plan to be at ELC Europe (October in UK) and Linux Plumbers
> > > > > (Nov in Boston) with a remote possibility of making it to LinuxCon
> > > > > (Aug in Boston, which includes a PM mini-summit on Monday.)
> > > > 
> > > > I'm planning on attending LinuxCon and Plumbers.  I'll also be up at
> > > > the Symposium.  A meetup at the PM mini-summit would be great if Mike
> > > > and Brian S can make it.  Thanks.
> > > > 
> > > > - Bryan
> > > 
> > > I will be going to plumbers I think a working session to get this type
> > > of generalization of qos-like ideas into the LDM would be an interesting
> > > thing to try to do.  I won't be able to lead or drive this topic
> > > however.  one of you guys need to make the proposal for the working
> > > session.
> > > 
> > > http://www.linuxplumbersconf.org/2010/07/07/linux-plumbers-conference-call-for-working-sessions-submissions
> > > 
> > > oh, we are running up against a July 19 deadline.
> > 
> > For working sessions, this isn't quite true ... the 19 July deadline is
> > only for Refereed Presentations (i.e. the standard conference talks).
> > The deadline for Working Sessions (Or MicroConferences) is up to the MC
> > Session Leader
> 
> OK, how do I figure out who's the one for the PM MC?

They're supposed to have Track Lead as their excerpt ... apparently
Matthew Garrett (who's the Session Leader) doesn't.

James

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

* Re: PM QoS dynamic resource manager
  2010-07-19  6:38                         ` James Bottomley
@ 2010-07-19 13:50                           ` Matthew Garrett
  0 siblings, 0 replies; 25+ messages in thread
From: Matthew Garrett @ 2010-07-19 13:50 UTC (permalink / raw)
  To: James Bottomley; +Cc: Huntsman, Bryan, linux-pm, mark gross, markgross

On Mon, Jul 19, 2010 at 08:38:33AM +0200, James Bottomley wrote:

> They're supposed to have Track Lead as their excerpt ... apparently
> Matthew Garrett (who's the Session Leader) doesn't.

Sorry about that - I've updated it.

I'll send out a mail about the kind of things I think would be helpful 
to discuss at Plumbers.

-- 
Matthew Garrett | mjg59@srcf.ucam.org

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

* Re: PM QoS dynamic resource manager
  2010-06-17 22:32               ` Kevin Hilman
  2010-06-18  5:57                 ` Huntsman, Bryan
@ 2010-08-10 16:24                 ` Kevin Hilman
  1 sibling, 0 replies; 25+ messages in thread
From: Kevin Hilman @ 2010-08-10 16:24 UTC (permalink / raw)
  To: markgross; +Cc: mark gross, linux-pm

On Thu, Jun 17, 2010 at 3:32 PM, Kevin Hilman
<khilman@deeprootsystems.com> wrote:
> Kevin Hilman <khilman@deeprootsystems.com> writes:
>
>> On Tue, 2010-06-08 at 20:05 -0700, mark gross wrote:
>>> On Tue, Jun 08, 2010 at 04:03:20PM -0700, Bryan Huntsman wrote:
>>> >
>>> > Mike, one idea I'm exploring is having platform-specific busses with
>>> > QoS constraints specified via runtime_pm as part of the LDM.  Adding
>>> > dynamic class creation within pm_qos, or a type enum as you suggest,
>>> > would work.  However, I think this kind of behavior would fit nicely
>>> > within runtime_pm.
>>> >
>>>
>>> Something like that is what Kevin Hilman was thinking too.  It would
>>> bring a qos concept to the LDM for each bus driver object.
>>

[...]

> It would be great if we could all get together at one of the
> conferences this year to talk through some of our ideas in more
> detail.  I plan to be at ELC Europe (October in UK) and Linux Plumbers
> (Nov in Boston) with a remote possibility of making it to LinuxCon
> (Aug in Boston, which includes a PM mini-summit on Monday.)

FYI... I've added a proposal to the PM mini-conf at Plumbers to have
more detailed discussion on per-device constraints:

   http://www.linuxplumbersconf.org/2010/ocw/events/LPC2010MC/proposals

Kevin

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

end of thread, other threads:[~2010-08-10 16:24 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-21 21:37 PM QoS dynamic resource manager Chidambaram, Praveen
2010-05-25 14:52 ` mark gross
2010-05-25 16:19   ` Chidambaram, Praveen
2010-06-08  0:18   ` Mike Chan
2010-06-08  3:33     ` mark gross
2010-06-08 14:44       ` Chidambaram, Praveen
2010-06-09  2:55         ` mark gross
2010-06-08 18:58       ` Mike Chan
2010-06-08 23:03         ` Bryan Huntsman
2010-06-08 23:35           ` Mike Chan
2010-06-08 23:48             ` Bryan Huntsman
2010-06-09  3:05           ` mark gross
2010-06-10  0:53             ` Mike Chan
2010-06-10  1:22               ` Bryan Huntsman
2010-06-11 13:55               ` mark gross
2010-06-11 14:12             ` Kevin Hilman
2010-06-17 22:32               ` Kevin Hilman
2010-06-18  5:57                 ` Huntsman, Bryan
2010-06-22 23:34                   ` mark gross
2010-07-18 12:57                   ` mark gross
2010-07-18 15:03                     ` James Bottomley
2010-07-19  1:46                       ` Rafael J. Wysocki
2010-07-19  6:38                         ` James Bottomley
2010-07-19 13:50                           ` Matthew Garrett
2010-08-10 16:24                 ` Kevin Hilman

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