public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
To: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org>
Cc: Linux-pm mailing list <linux-pm-qjLDD68F18O7TbgM5vRIOg@public.gmane.org>
Subject: Re: Nested suspends; messages vs. states
Date: Wed, 23 Mar 2005 10:36:41 +1100	[thread overview]
Message-ID: <1111534601.16201.27.camel@gaston> (raw)
In-Reply-To: <Pine.LNX.4.44L0.0503221143460.954-100000-3WpdWqXrU/qjv4eRiOYp3g@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 2682 bytes --]

On Tue, 2005-03-22 at 12:04 -0500, Alan Stern wrote:

> We can enforce the system sleep states by device locking as described 
> above.  For STD no enforcement is needed, because no processes other than 
> the PM thread will be running.  (Except for things with PF_NOFREEZE -- 
> they are in a position to cause some trouble.)

I'm not fan of this "locking" concept... Well, we are effectively
locking the PM state of the device, true, but I'm not sure it should act
as a lock, it should rather reject transitions no ? Or maybe you are
right, and we should just have a high level lock set when starting
STD/STR that blocks any user originated action ?
 
> 
> > If the driver is in a user-originated or idle-originated "suspend" state
> > (with auto-wakeup on activity) and gets a FREEZE (or another SUSPEND)
> > from the system, it must make sure not to auto-wakeup anymore from that
> > state. There is a bit of policy to implement here, and I'm not sure how
> > much of that can be put in the core to help drivers, and how much has to
> > remain driver specific.
> 
> Locking should take care of this, once it's available.

I'm not sure, but maybe ... I need to think about this "locking" concept
a bit more.

> I'm not sure either.  I guess we shouldn't worry about adding these flags 
> unless it becomes clear that they are needed.

Agreed.

> > So I think we need to have the states in some sort of order at least so
> > the core has a notion of what is "lower" and what is "higher" power to
> > deal with that. Though I suppose we could also have optional hooks in
> > driver (pre-parent-change and post-parent-change) for driver who want to
> > be sneaky, but that gets nasty and complicated.
> 
> I agree.  This is the sort of boilerplate computation that is best done in
> one single place -- the PM core.  Unfortunately it means that the core has
> to understand what combinations of parent-state/child-state are legal.  I
> don't know how that knowledge can best be represented.

Well, I had this idea of expressing dependencies with bitmasks of
states, that is a device would express for each state what parent states
it is compatible with (since parent states are de-facto bus-states, it
is ok for a device to know the semantics of the bus it's living on. PCI
busses (and thus parent -> pci bridges) will have a well defined set of
states, only leaf devices can have 'fancy' states).

EIther that, or we need more callbacks for validating states, but I'm
afraid that would become a mess... Most devices will only have 2 states
anyway, and we can probably provide shortcut macros for defining simple
2 state tables which will make things easy for most drivers.

Ben.



[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



  parent reply	other threads:[~2005-03-22 23:36 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-21 20:11 Nested suspends; messages vs. states Alan Stern
     [not found] ` <Pine.LNX.4.44L0.0503211436020.1241-100000-3WpdWqXrU/qjv4eRiOYp3g@public.gmane.org>
2005-03-21 20:20   ` Pavel Machek
     [not found]     ` <20050321202016.GI1390-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2005-03-21 21:14       ` Alan Stern
     [not found]         ` <Pine.LNX.4.44L0.0503211613010.2329-100000-3WpdWqXrU/qjv4eRiOYp3g@public.gmane.org>
2005-03-21 22:26           ` Pavel Machek
     [not found]             ` <20050321222609.GK1390-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2005-03-22  3:08               ` Alan Stern
     [not found]                 ` <Pine.LNX.4.44L0.0503212140450.28689-100000-pYrvlCTfrz9XsRXLowluHWD2FQJk+8+b@public.gmane.org>
2005-03-22 11:08                   ` Pavel Machek
     [not found]                     ` <20050322110802.GA1751-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2005-03-22 17:24                       ` Alan Stern
     [not found]                         ` <Pine.LNX.4.44L0.0503221216430.954-100000-3WpdWqXrU/qjv4eRiOYp3g@public.gmane.org>
2005-03-23 23:49                           ` Benjamin Herrenschmidt
2005-03-23 18:32               ` David Brownell
     [not found]                 ` <200503231032.36164.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2005-03-23 21:00                   ` Pavel Machek
2005-03-22  4:21   ` Benjamin Herrenschmidt
2005-03-22 17:04     ` Alan Stern
     [not found]       ` <Pine.LNX.4.44L0.0503221143460.954-100000-3WpdWqXrU/qjv4eRiOYp3g@public.gmane.org>
2005-03-22 23:36         ` Benjamin Herrenschmidt [this message]
2005-03-23  1:17         ` Patrick Mochel
     [not found]           ` <Pine.LNX.4.50.0503221709080.16154-100000-x8k/2hhmB0w5etPau2IXcQ@public.gmane.org>
2005-03-23 19:02             ` David Brownell
     [not found]               ` <200503231102.27137.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2005-03-23 20:36                 ` Nigel Cunningham
2005-03-23 21:08             ` Alan Stern
     [not found]               ` <Pine.LNX.4.44L0.0503231544550.631-100000-3WpdWqXrU/qjv4eRiOYp3g@public.gmane.org>
2005-03-24  2:35                 ` Patrick Mochel
     [not found]                   ` <Pine.LNX.4.50.0503231827310.15119-100000-x8k/2hhmB0w5etPau2IXcQ@public.gmane.org>
2005-03-24 17:03                     ` Alan Stern
     [not found]                       ` <Pine.LNX.4.44L0.0503241149000.1345-100000-3WpdWqXrU/qjv4eRiOYp3g@public.gmane.org>
2005-03-24 17:13                         ` Patrick Mochel
     [not found]                           ` <Pine.LNX.4.50.0503240904570.13683-100000-x8k/2hhmB0w5etPau2IXcQ@public.gmane.org>
2005-03-24 17:46                             ` David Brownell
2005-03-24 17:51                             ` Patrick Mochel
2005-03-24 19:27                             ` Alan Stern
2005-03-23 18:58     ` David Brownell
     [not found]       ` <200503231058.54311.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2005-03-23 19:37         ` Jordan Crouse
     [not found]           ` <20050323123725.201d8a67-aftB2sG12IhaqnLngUycEA@public.gmane.org>
2005-03-24  5:16             ` David Brownell
2005-03-23 23:24         ` Benjamin Herrenschmidt
2005-03-24  2:45           ` David Brownell
     [not found]             ` <200503231845.55392.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2005-03-24  5:03               ` Benjamin Herrenschmidt
2005-03-24  5:27                 ` David Brownell
     [not found]                   ` <200503232127.19576.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2005-03-24  6:02                     ` Benjamin Herrenschmidt
2005-03-24  6:31                       ` David Brownell
     [not found]                         ` <200503232231.00561.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2005-03-24  6:36                           ` Benjamin Herrenschmidt
2005-03-24  7:46                             ` David Brownell
2005-03-23  0:52   ` Patrick Mochel
     [not found]     ` <Pine.LNX.4.50.0503221635130.16154-100000-x8k/2hhmB0w5etPau2IXcQ@public.gmane.org>
2005-03-23  1:21       ` Benjamin Herrenschmidt
2005-03-23  1:46         ` Patrick Mochel
     [not found]           ` <Pine.LNX.4.50.0503221724550.16154-100000-x8k/2hhmB0w5etPau2IXcQ@public.gmane.org>
2005-03-23  3:31             ` Benjamin Herrenschmidt
2005-03-23 18:20               ` Patrick Mochel
     [not found]                 ` <Pine.LNX.4.50.0503231008340.17099-100000-x8k/2hhmB0w5etPau2IXcQ@public.gmane.org>
2005-03-23 21:02                   ` Pavel Machek
     [not found]                     ` <20050323210204.GE30704-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2005-03-23 21:35                       ` Nigel Cunningham
     [not found]                         ` <1111613750.14853.117.camel-r49W/1Cwd2ff0s6lnCXPX/uOuaPYTxhvJwvTLr3MMZM@public.gmane.org>
2005-03-23 21:54                           ` Pavel Machek
     [not found]                             ` <20050323215416.GK30704-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2005-03-24  2:40                               ` Patrick Mochel
     [not found]                                 ` <Pine.LNX.4.50.0503231838570.15119-100000-x8k/2hhmB0w5etPau2IXcQ@public.gmane.org>
2005-03-24  3:16                                   ` Nigel Cunningham
     [not found]                                     ` <1111634182.3430.1.camel-r49W/1Cwd2ff0s6lnCXPX/uOuaPYTxhvJwvTLr3MMZM@public.gmane.org>
2005-03-24  8:19                                       ` Patrick Mochel
     [not found]                                         ` <Pine.LNX.4.50.0503240017460.15119-100000-x8k/2hhmB0w5etPau2IXcQ@public.gmane.org>
2005-03-24 10:01                                           ` CPU local things [was Re: Nested suspends; messages vs. states] Pavel Machek
     [not found]                                             ` <20050324100153.GE1354-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2005-03-24 15:59                                               ` Patrick Mochel
     [not found]                                                 ` <Pine.LNX.4.50.0503240749030.24692-100000-x8k/2hhmB0w5etPau2IXcQ@public.gmane.org>
2005-03-24 17:14                                                   ` Nathan Lynch
2005-03-24 20:59                                                     ` Nigel Cunningham
2005-03-23 23:14                   ` Nested suspends; messages vs. states Benjamin Herrenschmidt
2005-03-24  1:27               ` Patrick Mochel
     [not found]                 ` <Pine.LNX.4.50.0503231724100.15119-100000-x8k/2hhmB0w5etPau2IXcQ@public.gmane.org>
2005-03-24  9:59                   ` Pavel Machek
     [not found]                     ` <20050324095910.GD1354-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2005-03-24 15:48                       ` Patrick Mochel
     [not found]                         ` <Pine.LNX.4.50.0503240746290.24692-100000-x8k/2hhmB0w5etPau2IXcQ@public.gmane.org>
2005-03-24 16:38                           ` David Brownell
     [not found]                             ` <200503240838.37628.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2005-03-24 17:00                               ` Patrick Mochel
     [not found]                                 ` <Pine.LNX.4.50.0503240858200.13683-100000-x8k/2hhmB0w5etPau2IXcQ@public.gmane.org>
2005-03-24 17:33                                   ` David Brownell
     [not found]                                     ` <200503240933.49123.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2005-03-24 17:41                                       ` Patrick Mochel
     [not found]                                         ` <Pine.LNX.4.50.0503240937150.13683-100000-x8k/2hhmB0w5etPau2IXcQ@public.gmane.org>
2005-03-24 18:08                                           ` David Brownell
2005-03-24  1:41               ` Patrick Mochel
     [not found]                 ` <Pine.LNX.4.50.0503231727220.15119-100000-x8k/2hhmB0w5etPau2IXcQ@public.gmane.org>
2005-03-24  2:22                   ` Benjamin Herrenschmidt
2005-03-24  2:05               ` Patrick Mochel
     [not found]                 ` <Pine.LNX.4.50.0503231742090.15119-100000-x8k/2hhmB0w5etPau2IXcQ@public.gmane.org>
2005-03-24  2:29                   ` Benjamin Herrenschmidt
2005-03-24  5:02                   ` David Brownell
     [not found]                     ` <200503232102.51132.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2005-03-24  5:14                       ` Benjamin Herrenschmidt
2005-03-24  5:31                         ` David Brownell
2005-03-24  8:16                         ` Patrick Mochel
2005-03-23 19:06       ` David Brownell
     [not found]         ` <200503231106.03160.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2005-03-23 20:29           ` Nigel Cunningham
     [not found]             ` <1111609769.14853.104.camel-r49W/1Cwd2ff0s6lnCXPX/uOuaPYTxhvJwvTLr3MMZM@public.gmane.org>
2005-03-23 20:55               ` David Brownell
2005-03-23 21:18               ` Alan Stern
2005-03-24  2:13           ` Patrick Mochel
     [not found]             ` <Pine.LNX.4.50.0503231810400.15119-100000-x8k/2hhmB0w5etPau2IXcQ@public.gmane.org>
2005-03-24  2:52               ` 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=1111534601.16201.27.camel@gaston \
    --to=benh-xvmvhmargas8u2djnn8i7kb+6bgklq7r@public.gmane.org \
    --cc=linux-pm-qjLDD68F18O7TbgM5vRIOg@public.gmane.org \
    --cc=stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org \
    /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