All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Igor Stoppa <igor.stoppa@nokia.com>
Cc: ext Alan Stern <stern@rowland.harvard.edu>,
	Len Brown <len.brown@intel.com>,
	linux acpi <linux-acpi@vger.kernel.org>,
	Pavel Machek <pavel@ucw.cz>,
	pm list <linux-pm@lists.linux-foundation.org>
Subject: Re: [linux-pm] Re: [RFC][PATCH -mm] PM: Introduce set_target method in pm_ops
Date: Sun, 24 Jun 2007 15:04:40 +0200	[thread overview]
Message-ID: <200706241504.41009.rjw@sisk.pl> (raw)
In-Reply-To: <1182685788.10929.28.camel@Dogbert.NOE.nokia.com>

On Sunday, 24 June 2007 13:49, Igor Stoppa wrote:
> Hi,
> On Sat, 2007-06-23 at 20:28 -0400, ext Alan Stern wrote:
> > On Sun, 24 Jun 2007, Rafael J. Wysocki wrote:
> > 
> > > > Is this design okay with system states in which the CPU is able to
> > run?
> > > 
> > > Do you mean the patch or the suggestions above?
> > 
> > The suggestions.
> > 
> > > > Right now the states we have are On, Standby, and Suspend, and the
> > CPU
> > > > runs only in the On state.  But on some platforms there could be
> > > > multiple states in which the CPU is able to run, albeit with
> > degraded 
> > > > performance.
> > > 
> > > I wouldn't call those system sleep states.  For example, ACPI
> > defines system
> > > sleep states as the states in which no instructions are executed by
> > any CPUs
> > > and I think that's reasonable.
> > > 
> > > Moreover, the ACPI spec insists that transitions between different sleep
> > > states should be made through the On state.
> > 
> > Okay.  But on non-ACPI systems, do we want to restrict the 
> > /sys/power/state interface to sleep states?  How then should the user 
> > tell the system to go to a low-performance run state?  Or should that 
> > be handled automatically within the kernel?
> 
> That's how we do it since Nokia IT 770 where we have:
>  
> /sys/power/sleep_while_idle
> 
> and if that's set to 1 (default), then in the idle loop we try to hit
> SoC retention.
> 
> Retention can be achieved if all the clocks have been released by their
> respective users. If not all the clocks are free, the system oscillator
> is not stopped and thereffore only some part will be in clock stop mode.
> This, still, yelds significant power saving.
> 
> There is also an architecture specific (OMAP1 vs OMAP2) way to control
> latency.
> 
> It's very rudimental and partially hackish: in OMAP2 it's mostly used to
> workaround some missing wakeup dependencies (some are not provided by
> the hw, some are not implemented properly by sw and should be fixed).
> 
> OMAP1: select ARM idle vs Big Sleep vs Deep Sleep
> 
> OMAP2: select ARM idle vs ARM retention, vs SoC retention
> 
> That's nice both from user's perspective (no need to worry about runtime
> pm, it just works) and driver developer's perspective (if your driver is
> for hw that has been properly wired, then using the clock fw interface
> is enough).
> 
> So if you want to implement dependencies betweeen userspace and
> kernelspace because your architecture has them builtin, it's ok, but
> they should not be forced upon those arch that don't need them.

Sure, if your platform core is not going to give the user any control over
the runtime PM, it should be able to tell the PM core about that, in which case
the top-level runtime PM interface should be inactive.

This is one of the reasons why I think that /sys/power/state should cover
system sleep states only.

Greetings,
Rafael


-- 
"Premature optimization is the root of all evil." - Donald Knuth

  parent reply	other threads:[~2007-06-24 12:57 UTC|newest]

Thread overview: 111+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-19  2:33 [PATCH 1/2] acpi choose sleep state help Shaohua Li
2007-06-19 11:52 ` Rafael J. Wysocki
2007-06-19 22:00   ` Rafael J. Wysocki
2007-06-20  6:18   ` Shaohua Li
2007-06-20 11:32     ` [RFD] How to tell ACPI drivers what the target sleep state is (was: Re: [PATCH 1/2] acpi choose sleep state help) Rafael J. Wysocki
2007-06-20 11:32     ` Rafael J. Wysocki
2007-06-20 14:08       ` [linux-pm] " Alan Stern
2007-06-20 14:36         ` Rafael J. Wysocki
2007-06-20 14:36         ` Rafael J. Wysocki
2007-06-21  6:57         ` David Brownell
2007-06-20 14:08       ` Alan Stern
2007-06-21  1:51       ` Len Brown
2007-06-21  7:10         ` David Brownell
2007-06-21  1:51       ` Len Brown
2007-06-21  7:04       ` David Brownell
2007-06-21 12:42         ` Rafael J. Wysocki
2007-06-21 13:03           ` Pavel Machek
2007-06-21 13:03           ` Pavel Machek
2007-06-21 14:46             ` Rafael J. Wysocki
2007-06-21 14:46             ` Rafael J. Wysocki
2007-06-21 15:23               ` [linux-pm] " Alan Stern
2007-06-21 19:41                 ` Rafael J. Wysocki
2007-06-21 19:41                 ` Rafael J. Wysocki
2007-06-21 15:23               ` Alan Stern
2007-06-21 16:35               ` David Brownell
2007-06-21 19:42                 ` Rafael J. Wysocki
2007-06-21 19:42                 ` Rafael J. Wysocki
2007-06-21 16:35               ` David Brownell
2007-06-21 15:37             ` David Brownell
2007-06-21 18:59               ` Pavel Machek
2007-06-21 18:59               ` [linux-pm] " Pavel Machek
2007-06-21 20:03                 ` David Brownell
2007-06-21 20:37                   ` Rafael J. Wysocki
2007-06-21 20:37                   ` Rafael J. Wysocki
2007-06-21 20:03                 ` David Brownell
2007-06-21 19:52               ` Rafael J. Wysocki
2007-06-21 19:52               ` Rafael J. Wysocki
2007-06-21 15:37             ` David Brownell
2007-06-21 14:48           ` David Brownell
2007-06-21 20:04             ` Rafael J. Wysocki
2007-06-21 20:04             ` Rafael J. Wysocki
2007-06-21 20:22               ` David Brownell
2007-06-21 20:41                 ` Rafael J. Wysocki
2007-06-21 20:41                 ` Rafael J. Wysocki
2007-06-21 20:22               ` David Brownell
2007-06-21 14:48           ` David Brownell
2007-06-21 12:42         ` Rafael J. Wysocki
2007-06-21 15:56         ` Alan Stern
2007-06-21 16:35           ` David Brownell
2007-06-21 16:35           ` [linux-pm] " David Brownell
2007-06-21 17:11             ` Alan Stern
2007-06-21 17:11             ` [linux-pm] " Alan Stern
2007-06-21 18:02               ` David Brownell
2007-06-21 18:51                 ` Alan Stern
2007-06-21 18:51                 ` [linux-pm] " Alan Stern
2007-06-21 19:51                   ` David Brownell
2007-06-21 19:51                   ` [linux-pm] " David Brownell
2007-06-21 20:35                     ` Rafael J. Wysocki
2007-06-21 20:46                       ` David Brownell
2007-06-21 21:02                         ` Rafael J. Wysocki
2007-06-21 21:04                           ` Alan Stern
2007-06-21 21:04                           ` [linux-pm] " Alan Stern
2007-06-23 22:00                             ` [RFC][PATCH -mm] PM: Introduce set_target method in pm_ops Rafael J. Wysocki
2007-06-23 23:46                               ` Alan Stern
2007-06-24  0:03                                 ` Rafael J. Wysocki
2007-06-24  0:03                                 ` Rafael J. Wysocki
2007-06-24  0:28                                   ` Alan Stern
2007-06-24  9:52                                     ` [linux-pm] " Johannes Berg
2007-06-24  9:52                                     ` Johannes Berg
2007-06-24 11:49                                     ` [linux-pm] " Igor Stoppa
2007-06-24 13:04                                       ` Rafael J. Wysocki
2007-06-24 13:04                                       ` Rafael J. Wysocki [this message]
2007-06-24 11:49                                     ` Igor Stoppa
2007-06-24 12:57                                     ` Rafael J. Wysocki
2007-06-25  0:01                                       ` David Brownell
2007-06-25  0:01                                       ` David Brownell
2007-06-25 22:14                                         ` Rafael J. Wysocki
2007-06-25 22:14                                         ` Rafael J. Wysocki
2007-06-24 12:57                                     ` Rafael J. Wysocki
2007-06-24  0:28                                   ` Alan Stern
2007-06-25 13:04                                   ` Pavel Machek
2007-06-25 13:57                                     ` [linux-pm] " Dmitry Krivoschekov
2007-06-25 19:28                                       ` Pavel Machek
2007-06-25 22:16                                         ` Rafael J. Wysocki
2007-06-25 22:16                                         ` Rafael J. Wysocki
2007-06-25 19:28                                       ` Pavel Machek
2007-06-25 13:57                                     ` Dmitry Krivoschekov
2007-06-25 13:04                                   ` Pavel Machek
2007-06-23 23:46                               ` Alan Stern
2007-06-23 22:00                             ` Rafael J. Wysocki
2007-06-21 21:02                         ` Re: [RFD] How to tell ACPI drivers what the target sleep state is (was: Re: [PATCH 1/2] acpi choose sleep state help) Rafael J. Wysocki
2007-06-21 20:46                       ` David Brownell
2007-06-21 20:35                     ` Rafael J. Wysocki
2007-06-21 21:00                     ` Platform-specific system power states Alan Stern
2007-06-22 19:49                       ` David Brownell
2007-06-22 21:30                         ` Rafael J. Wysocki
2007-06-23  1:32                           ` Alan Stern
2007-06-23 20:20                             ` Rafael J. Wysocki
2007-06-25  0:10                               ` David Brownell
2007-06-25 22:59                                 ` Rafael J. Wysocki
2007-06-25  0:26                           ` David Brownell
2007-06-25 23:04                             ` Rafael J. Wysocki
2007-06-21 20:19                   ` [linux-pm] Re: [RFD] How to tell ACPI drivers what the target sleep state is (was: Re: [PATCH 1/2] acpi choose sleep state help) Rafael J. Wysocki
2007-06-21 20:32                     ` David Brownell
2007-06-21 20:32                     ` [linux-pm] " David Brownell
2007-06-21 20:50                       ` Rafael J. Wysocki
2007-06-21 20:50                       ` Rafael J. Wysocki
2007-06-21 20:19                   ` Rafael J. Wysocki
2007-06-21 18:02               ` David Brownell
2007-06-20 11:32     ` Rafael J. Wysocki
2007-06-21  7:14     ` [PATCH 1/2] acpi choose sleep state help David Brownell

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=200706241504.41009.rjw@sisk.pl \
    --to=rjw@sisk.pl \
    --cc=igor.stoppa@nokia.com \
    --cc=len.brown@intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=pavel@ucw.cz \
    --cc=stern@rowland.harvard.edu \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.