linux-omap.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  reply	other threads:[~2011-07-04  7:16 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-30 15:11 [PATCH v2 00/11] PM QoS: add a per-device wake-up latency constraint class jean.pihet
2011-06-30 15:11 ` [PATCH 01/11] PM: add a per-device wake-up latency constraints plist jean.pihet
2011-07-02 19:39   ` Rafael J. Wysocki
2011-07-20  8:57     ` Jean Pihet
2011-06-30 15:11 ` [PATCH 02/11] PM: extend PM QoS with per-device wake-up constraints jean.pihet
2011-07-02 21:10   ` Rafael J. Wysocki
2011-07-20  9:13     ` Jean Pihet
2011-08-02 17:49     ` Kevin Hilman
2011-08-02 20:19       ` Rafael J. Wysocki
2011-08-02 21:23         ` Kevin Hilman
2011-08-02 22:16           ` Rafael J. Wysocki
2011-08-04 13:24             ` [linux-pm] " Mark Brown
2011-08-04 19:15               ` Rafael J. Wysocki
2011-08-05 15:29                 ` mark gross
2011-08-05 16:11                 ` Mark Brown
2011-08-05 19:37                   ` Rafael J. Wysocki
2011-08-06  3:37                     ` Mark Brown
2011-08-06 19:46                       ` Rafael J. Wysocki
2011-08-07  2:47                         ` [linux-pm] " Mark Brown
2011-08-08 21:31                           ` Rafael J. Wysocki
2011-08-19  3:11                             ` Mark Brown
2011-08-19 20:42                               ` Rafael J. Wysocki
2011-08-19 23:14                                 ` Mark Brown
2011-08-20  2:24                                   ` Alan Stern
2011-08-20  6:25                                     ` Mark Brown
2011-08-20 13:48                                       ` Alan Stern
2011-08-20 15:30                                         ` Mark Brown
2011-08-20 16:34                                           ` Rafael J. Wysocki
2011-08-20 17:04                                             ` Mark Brown
2011-08-20 19:14                                               ` Rafael J. Wysocki
2011-08-21  8:25                                                 ` Mark Brown
2011-08-21 18:05                                                   ` Rafael J. Wysocki
2011-08-23  9:21                                                     ` Mark Brown
2011-08-23 21:31                                                       ` Rafael J. Wysocki
2011-08-25 10:38                                                         ` Mark Brown
2011-08-25 14:17                                                           ` Rafael J. Wysocki
2011-08-25 14:41                                                             ` Jean Pihet
2011-08-25 14:49                                                               ` Rafael J. Wysocki
2011-08-26 16:40                                                             ` mark gross
2011-08-20  9:35                                   ` Rafael J. Wysocki
2011-08-20 10:31                                     ` Mark Brown
2011-08-20 16:51                                       ` Rafael J. Wysocki
2011-08-20 17:22                                         ` Mark Brown
2011-08-20 19:18                                           ` Rafael J. Wysocki
2011-08-26  2:25   ` MyungJoo Ham
2011-08-26 16:54     ` mark gross
2011-08-26 20:56       ` Rafael J. Wysocki
2011-06-30 15:11 ` [PATCH 03/11] PM QoS: support the dynamic devices insertion and removal jean.pihet
2011-07-02 21:14   ` Rafael J. Wysocki
2011-07-20  9:16     ` 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
2011-07-04  7:16   ` Vishwanath Sripathy [this message]
2011-07-04  8:38     ` Rafael J. Wysocki
2011-07-20  9:26   ` Jean Pihet
2011-07-20 13:22     ` mark gross

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;
as well as URLs for NNTP newsgroup(s).