From: David Brownell <david-b@pacbell.net>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Alan Stern <stern@rowland.harvard.edu>,
linux-acpi@vger.kernel.org, linux-pm@lists.linux-foundation.org
Subject: Re: [linux-pm] [patch 2.6.25-rc6 3/7] pci_choose_state() cleanup and fixes
Date: Fri, 21 Mar 2008 01:15:03 -0700 [thread overview]
Message-ID: <200803210115.04210.david-b@pacbell.net> (raw)
In-Reply-To: <200803210247.18686.rjw@sisk.pl>
On Thursday 20 March 2008, Rafael J. Wysocki wrote:
> Is there any reason why pci_choose_state() should try to figure out what kind
> of operation is being performed by the driver and tailor its output to that?
It's always been specified to do that ... but it's always done
that in a buggy way. (Which is why USB never used it.)
> I don't think so. Rather, the driver should know what it's doing and either
> call pci_choose_state() or not. If the state of the device is not to be
> changed, there's no reason to call pci_choose_state() at all.
You seem to object to letting drivers offload this particular
bit of work to infrastructure. What's the dividing line between
being OK to offload vs not eing OK? Why not let the drivers make
that choice?
> [Note that with the new suspend/hibernation callbacks there
> won't be the pm_message_t argument to pass to pci_choose_state().]
The pm_message_t will necessarily linger until all drivers have
been converted and re-tested. Which can't be an overnight thing.
> Now, we need to settle _what_ exactly pci_choose_state() is supposed
> to return, because it's not clear right now.
Kerneldoc says:
* Returns PCI power state suitable for given device and given system
* power state transition.
Some comments added by $SUBJECT also clarify:
/* NOTE: platform_pci_choose_state() should only return
* states where wakeup won't work if
* - !device_may_wakeup(&dev->dev), or
* - dev can't wake from the target system state
*/
That happens to be what acpi_pm_device_sleep_state() computes;
there may not be other implementations of that call, yet. I can
imagine a default that would look at PCI PM capabilities, to be
used on non-ACPI platforms.
> Should that be the lowest power
> state in which the device can be in given system state (that's what
> platform_pci_choose_state() will return)?
Actually the comment above is the *entirety* of the docs for
that call: it chooses a state. You're asking a question of
policy (how/why it chooses); that's outside the scope of PCI.
> Or should that be the highest power
> state in which the device can be in given system state?
> Or anything else?
It happens that the current Linux ACPI glue chooses the
lowest power PCI state that's compatible with the target
system state ... optimizing for power savings rather than
for quick resumes.
It might make sense to support a policy that optimizes for
fast resumes from some states. But I can't see that'd be
worth much effort at this point, with bigger fish to fry!
- Dave
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" 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:[~2008-03-21 8:15 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-20 21:08 [patch 2.6.25-rc6 0/7] misc pm wake patches David Brownell
2008-03-20 21:09 ` [patch 2.6.25-rc6 1/7] crosslink ACPI and "real" device nodes David Brownell
2008-03-21 6:43 ` Zhao Yakui
2008-03-21 7:31 ` David Brownell
2008-03-21 8:34 ` Zhao Yakui
2008-03-21 9:04 ` David Brownell
2008-03-20 21:10 ` [patch 2.6.25-rc6 2/7] acpi_pm_device_sleep_state() cleanup David Brownell
2008-03-24 16:30 ` [linux-pm] " Pavel Machek
2008-04-19 4:11 ` [RESEND patch 2.6.25] " David Brownell
2008-04-29 20:33 ` [RE-RESEND patch 2.6.25-git] " David Brownell
2008-04-29 21:49 ` Rafael J. Wysocki
2008-04-29 22:12 ` David Brownell
2008-04-30 12:07 ` Rafael J. Wysocki
2008-03-20 21:12 ` [patch 2.6.25-rc6 3/7] pci_choose_state() cleanup and fixes David Brownell
2008-03-20 22:37 ` Rafael J. Wysocki
2008-03-20 23:03 ` David Brownell
2008-03-21 0:22 ` Rafael J. Wysocki
2008-03-21 0:55 ` [linux-pm] " Alan Stern
2008-03-21 1:47 ` Rafael J. Wysocki
2008-03-21 8:15 ` David Brownell [this message]
2008-03-21 16:23 ` Rafael J. Wysocki
2008-03-22 17:55 ` David Brownell
2008-03-22 18:11 ` Rafael J. Wysocki
2008-03-22 18:29 ` David Brownell
2008-03-21 7:53 ` David Brownell
2008-03-21 16:38 ` Rafael J. Wysocki
2008-03-22 17:49 ` David Brownell
2008-03-22 18:34 ` Rafael J. Wysocki
2008-04-14 4:59 ` David Brownell
2008-03-20 21:15 ` [patch 2.6.25-rc6 4/7] USB uses pci_choose_state() David Brownell
2008-03-20 21:20 ` [patch 2.6.25-rc6 5/7] ACPI sets up device.power.can_wakeup flags David Brownell
2008-03-21 7:43 ` Zhao Yakui
2008-04-19 4:14 ` [RESEND patch 2.6.25] " David Brownell
2008-04-22 2:48 ` Zhang Rui
2008-03-20 21:22 ` [patch 2.6.25-rc6 6/7] ACPI uses device_may_wakeup() policy inputs David Brownell
2008-04-19 4:18 ` [RESEND patch 2.6.25] " David Brownell
2008-04-22 2:42 ` Zhang Rui
2008-04-26 19:29 ` David Brownell
2008-04-22 13:30 ` Zhao Yakui
2008-04-26 19:37 ` David Brownell
2008-04-28 12:48 ` Zhao Yakui
2008-04-28 8:50 ` Zhang Rui
2008-04-28 13:43 ` [linux-pm] " Alan Stern
2008-04-29 23:38 ` David Brownell
2008-04-30 13:58 ` Alan Stern
2008-05-14 14:56 ` Pavel Machek
2008-04-28 22:28 ` David Brownell
2008-04-28 21:35 ` Henrique de Moraes Holschuh
2008-04-28 22:20 ` David Brownell
2008-04-28 22:54 ` Henrique de Moraes Holschuh
2008-04-29 0:20 ` David Brownell
2008-04-29 20:32 ` David Brownell
2008-04-28 22:24 ` David Brownell
2008-04-28 22:26 ` David Brownell
2008-03-20 21:25 ` [patch 2.6.25-rc6 7/7] PCI set up device.power.can_wakeup flags David Brownell
2008-03-20 21:53 ` [linux-pm] " Alan Stern
2008-03-20 22:22 ` 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=200803210115.04210.david-b@pacbell.net \
--to=david-b@pacbell.net \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=rjw@sisk.pl \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox