From: Vishwanath Sripathy <vishwanath.bs@ti.com>
To: "Rafael J. Wysocki" <rjw@sisk.pl>, jean.pihet@newoldbits.com
Cc: markgross@thegnar.org,
Linux PM mailing list <linux-pm@lists.linux-foundation.org>,
linux-omap@vger.kernel.org, Jean Pihet-XID <j-pihet@ti.com>
Subject: Re: [PATCH v2 00/11] PM QoS: add a per-device wake-up latency constraint class
Date: Mon, 4 Jul 2011 12:46:17 +0530 [thread overview]
Message-ID: <62b1cfbe626e329338b9f0a9b69ef2d3@mail.gmail.com> (raw)
In-Reply-To: <201107022120.47221.rjw@sisk.pl>
> -----Original Message-----
> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of Rafael J. Wysocki
> Sent: Sunday, July 03, 2011 12:51 AM
> To: jean.pihet@newoldbits.com
> Cc: Paul Walmsley; Kevin Hilman; Magnus Damm; Linux PM mailing list;
> linux-omap@vger.kernel.org; markgross@thegnar.org; Jean Pihet
> Subject: Re: [PATCH v2 00/11] PM QoS: add a per-device wake-up
> latency constraint class
>
> Hi,
>
> On Thursday, June 30, 2011, jean.pihet@newoldbits.com wrote:
> > From: Jean Pihet <j-pihet@ti.com>
> >
> > This patch set is in an RFC state, for review and comments.
>
> First off, I'm sorry I couldn't review the patchset earlier.
>
> > In order to implement the new class in PM QoS the following
> changes have been
> > made:
> >
> > 1. Add a new PM QoS class for device wake-up constraints
> > (PM_QOS_DEV_WAKEUP_LATENCY).
> > Due to the per-device nature of the new class the constraints
> lists are stored
> > inside the device dev_pm_info struct instead of the internal per-
> class
> > constraints lists.
> > The new class is only available from kernel drivers and so is not
> exported to
> > user space.
>
> Have you considered a design in which multiple devices may use the
> same
> list of constraints? It seems plausible that the constraints will
> be the
> same, for example, for all Ethernet adapters in the system, in which
> case it
> will be wasteful to duplicate the list of constraints for each of
> them.
>
> > 2. Added a notification of device insertion/removal from the
> device PM framework
> > to PM QoS.
> > This allows to init/de-init the per-device constraints list upon
> device insertion
> > and removal.
> > RFC state for comments and review, barely tested
>
> I need to have a look at the details, but in principle this means
> that the
> per-device lists will be usable only after the devices have been
> registered.
> In particular, this means that it will only be possible to add new
> constraints
> after registering the device, which may be too late for some use
> cases.
>
> > 3. Make the pm_qos_add_request API more generic by using a
> > struct pm_qos_parameters parameter. This allows easy extension in
> the future.
> >
> > 4. Upon a change of the strongest constraint in the
> PM_QOS_DEV_WAKEUP_LATENCY
> > class a notification chain mechanism is used to take action on the
> system.
> > This is the proposed way to have PM QoS and the platform dependant
> code to
> > interact with each other, cf. 4 below.
>
> I guess you mean 5.?
>
> I think we will need something in addition to the notifier here.
> For example,
> I wouldn't like any core code, like runtime PM or cpuidle, to have
> to register
> a notifier with PM QoS.
>
> > The notification mechanism now passes the constraint request
> struct ptr in
> > order for the notifier callback to have access to the full set of
> constraint
> > data, e.g. the struct device ptr.
> >
> > 5. cpuidle interaction with the OMAP3 cpuidle handler
> > Since cpuidle is a CPU centric framework it decides the MPU next
> power state
> > based on the MPU exit_latency and target_residency figures.
> >
> > The rest of the power domains get their next power state
> programmed from
> > the PM_QOS_DEV_WAKEUP_LATENCY class of the PM QoS framework, via
> the device
> > wake-up latency constraints.
> >
> > Note: the exit_latency and target_residency figures of the MPU
> include the MPU
> > itself and the peripherals needed for the MPU to execute
> instructions (e.g.
> > main memory, caches, IRQ controller, MMU etc).
> > Some of those peripherals can belong to other power domains than
> the MPU
> > subsystem and so the corresponding latencies must be included in
> those figures.
> >
> > 6. Update the pm_qos_add_request callers to the generic API
> >
> > 7. Minor clean-ups and rename of struct fields
> >
> > Questions:
> > 1. How to retrieve the device ptr from a given device driver in
> order to add
> > a constraint on it?
> > 2. The device struct has recently been extended with the power
> domain
> > information. Can this be used to apply the constraints on power
> domains?
>
> Yes, it can in principle, but that will require some work.
>
> > On-going developments, patches in preparation:
> > 1. write Documentation for the new PM QoS class
>
> I'd wait with that until the code has settled.
>
> > 2. validate the constraints framework on OMAP4 HW (done on OMAP3)
> > 3. refine the power domains wake-up latency and the cpuidle
> figures
> >
> > Based on the master branch of the linux-omap git tree (3.0.0-rc3).
> Compile
> > tested using OMAP and x86 generic defconfigs.
> > Tested on OMAP3 Beagleboard (ES2.x) with full RETention and OFF
> modes.
>
> More detailed comments will follow.
Thanks Rafael for reviewing the patches. Jean is currently on summer
vacation for 2 weeks and will take this discussion forward once he is back
to work on July 18.
Regards
Vishwa
>
> Thanks,
> Rafael
> --
> To unsubscribe from this list: send the line "unsubscribe linux-
> omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2011-07-04 7:16 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1309446685-17502-1-git-send-email-j-pihet@ti.com>
2011-06-30 15:11 ` [PATCH 01/11] PM: add a per-device wake-up latency constraints plist jean.pihet
2011-06-30 15:11 ` [PATCH 02/11] PM: extend PM QoS with per-device wake-up constraints jean.pihet
2011-06-30 15:11 ` [PATCH 03/11] PM QoS: support the dynamic devices insertion and removal jean.pihet
2011-06-30 15:11 ` [PATCH 04/11] OMAP PM: create a PM layer plugin for per-device constraints jean.pihet
2011-06-30 15:11 ` [PATCH 05/11] OMAP PM: early init of the pwrdms states jean.pihet
2011-06-30 15:11 ` [PATCH 06/11] OMAP2+: powerdomain: control power domains next state jean.pihet
2011-06-30 15:11 ` [PATCH 07/11] OMAP3: powerdomain data: add wake-up latency figures jean.pihet
2011-06-30 15:11 ` [PATCH 08/11] OMAP4: " jean.pihet
2011-06-30 15:11 ` [PATCH 09/11] OMAP2+: omap_hwmod: manage the wake-up latency constraints jean.pihet
2011-06-30 15:11 ` [PATCH 10/11] OMAP: PM CONSTRAINTS: implement the devices " jean.pihet
2011-06-30 15:11 ` [PATCH 11/11] OMAP2+: cpuidle only influences the MPU state jean.pihet
2011-07-02 19:20 ` [PATCH v2 00/11] PM QoS: add a per-device wake-up latency constraint class Rafael J. Wysocki
[not found] ` <1309446685-17502-2-git-send-email-j-pihet@ti.com>
2011-07-02 19:39 ` [PATCH 01/11] PM: add a per-device wake-up latency constraints plist Rafael J. Wysocki
[not found] ` <201107022139.51579.rjw@sisk.pl>
2011-07-20 8:57 ` Jean Pihet
[not found] ` <1309446685-17502-4-git-send-email-j-pihet@ti.com>
2011-07-02 21:14 ` [PATCH 03/11] PM QoS: support the dynamic devices insertion and removal Rafael J. Wysocki
[not found] ` <201107022314.21713.rjw@sisk.pl>
2011-07-20 9:16 ` Jean Pihet
[not found] ` <201107022120.47221.rjw@sisk.pl>
2011-07-04 7:16 ` Vishwanath Sripathy [this message]
2011-07-04 8:38 ` [PATCH v2 00/11] PM QoS: add a per-device wake-up latency constraint class Rafael J. Wysocki
2011-07-20 9:26 ` Jean Pihet
[not found] ` <CAORVsuVt1cg04T7wKKTeaGHEDs-OEejs7+cuDXpVcCUv7r4_FQ@mail.gmail.com>
2011-07-20 13:22 ` mark gross
[not found] ` <1309446685-17502-3-git-send-email-j-pihet@ti.com>
2011-07-02 21:10 ` [PATCH 02/11] PM: extend PM QoS with per-device wake-up constraints Rafael J. Wysocki
[not found] ` <201107022310.50175.rjw@sisk.pl>
2011-07-20 9:13 ` Jean Pihet
2011-08-02 17:49 ` Kevin Hilman
[not found] ` <87bow7ln4c.fsf@ti.com>
2011-08-02 20:19 ` Rafael J. Wysocki
[not found] ` <201108022220.00019.rjw@sisk.pl>
2011-08-02 21:23 ` Kevin Hilman
[not found] ` <8762mfecdk.fsf@ti.com>
2011-08-02 22:16 ` Rafael J. Wysocki
2011-08-04 13:24 ` Mark Brown
[not found] ` <20110804132426.GB14921@sirena.org.uk>
2011-08-04 19:15 ` Rafael J. Wysocki
[not found] ` <201108042115.30983.rjw@sisk.pl>
2011-08-05 15:29 ` mark gross
2011-08-05 16:11 ` Mark Brown
[not found] ` <20110805161147.GA3438@opensource.wolfsonmicro.com>
2011-08-05 19:37 ` Rafael J. Wysocki
[not found] ` <201108052137.37011.rjw@sisk.pl>
2011-08-06 3:37 ` Mark Brown
[not found] ` <20110806033711.GA18987@opensource.wolfsonmicro.com>
2011-08-06 19:46 ` Rafael J. Wysocki
2011-08-07 2:47 ` Mark Brown
[not found] ` <20110807024712.GA5887@opensource.wolfsonmicro.com>
2011-08-08 21:31 ` Rafael J. Wysocki
[not found] ` <201108082331.35853.rjw@sisk.pl>
2011-08-19 3:11 ` Mark Brown
[not found] ` <1313723464.19990.124.camel@finisterre.wolfsonmicro.main>
2011-08-19 20:42 ` Rafael J. Wysocki
[not found] ` <201108192242.20471.rjw@sisk.pl>
2011-08-19 23:14 ` Mark Brown
[not found] ` <20110819231419.GA3981@sirena.org.uk>
2011-08-20 2:24 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1108192223230.18944-100000@netrider.rowland.org>
2011-08-20 6:25 ` Mark Brown
2011-08-20 9:35 ` Rafael J. Wysocki
[not found] ` <201108201135.58886.rjw@sisk.pl>
2011-08-20 10:31 ` Mark Brown
[not found] ` <20110820103121.GA21457@opensource.wolfsonmicro.com>
2011-08-20 16:51 ` Rafael J. Wysocki
[not found] ` <201108201851.42839.rjw@sisk.pl>
2011-08-20 17:22 ` Mark Brown
[not found] ` <20110820172237.GB27040@opensource.wolfsonmicro.com>
2011-08-20 19:18 ` Rafael J. Wysocki
2011-08-26 2:25 ` MyungJoo Ham
[not found] ` <CAJ0PZbRCvoh8-rJAR92Ak_JPk4FyR0dp_OeKOUkWtD5AdFsPCw@mail.gmail.com>
2011-08-26 16:54 ` mark gross
[not found] ` <20110826165427.GC9437@gvim.org>
2011-08-26 20:56 ` Rafael J. Wysocki
2011-06-30 15:11 [PATCH v2 00/11] PM QoS: add a per-device wake-up latency constraint class jean.pihet
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=62b1cfbe626e329338b9f0a9b69ef2d3@mail.gmail.com \
--to=vishwanath.bs@ti.com \
--cc=j-pihet@ti.com \
--cc=jean.pihet@newoldbits.com \
--cc=linux-omap@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=markgross@thegnar.org \
--cc=rjw@sisk.pl \
/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