mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: David Brownell <david-b@pacbell.net>
To: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: linux-kernel@vger.kernel.org, gregkh@suse.de
Subject: Re: Changes to sysfs PM layer break userspace
Date: Tue, 19 Dec 2006 13:22:12 -0800	[thread overview]
Message-ID: <200612191322.13378.david-b@pacbell.net> (raw)
In-Reply-To: <20061219185223.GA13256@srcf.ucam.org>

On Tuesday 19 December 2006 10:52 am, Matthew Garrett wrote:
> Commit 047bda36150d11422b2c7bacca1df324c909c0b3 broke userspace.

Actually, no ... that just prevented breakage enabled by
commit cbd69dbbf1adfce6e048f15afc8629901ca9dae5 which taught
PCI how to use the new irqs-off suspend_late()/resume_early()
driver model calls.


> Previously, /sys/bus/pci/devices/foo/power/state could have values 
> echoed into it for triggering suspend/resume calls in the driver.

In general, it still can; though not for PCI, because of the change
I pointed out above.  What the patch you mentioned changes is something
else:  it refuses to do so when those calls should require leaving
the system in an IRQs-off mode.

Rather obviously, IRQs-off is fine for entering system-wide suspend
states.  But Linux can't stay in that mode for normal operations ...


> The  
> breakage is handily mentioned in the comment:
> 
> "Devices with bus.suspend_late(), or bus.resume_early() methods fail 
> this operation; those methods couldn't be called."

And the reason they couldn't be called is:  that they guarantee IRQs
would stay off between suspend_late() and resume_early().

 
> but there's no mention of what previously working code is supposed to do 
> now. 

Stop trying to use broken and deprecated APIs; and realize that "previously
working" meant you just hadn't tripped over the serious bugs yet.

Work with driver framework developers to come up with a solution for
the _real_ problem, which IMO will look more like "teach <x> stack about
power management" than "bypass all the driver layers and go right to a
PCI-specific mechanism, even for non-PCI drivers".


>> Ubuntu uses it to disable wireless hardware under certain circumstances. 
>> I believe that Suse's powernowd uses it to power down wired ethernet 
>> hardware when it's not in use.

Drivers can and should know how to do that sort of stuff themselves,
so the power savings are reliable and consistent no matter what user
space tools are (or aren't) used.

Drivers know how to get power savings a lot better than any userspace
code ever could ... with the exception of hints like "ifdown eth0"
letting the driver know that right now is a good time to power down
almost everything, since it's not going to be used until "ifup".
(Agreed that other hints may be desirable, but that's a different
issue ... probably best addressed at the framework level, e.g. WLAN,
rather than by hacks to individual drivers.)


> That's the second time in the past year or so that this interface  
> has been broken - can we have it working again, please, especially as 
> there doesn't appear to be an alternative yet?

As a generic mechanism, that interface has *ALWAYS* been "broken
by design"; I'd call it unfixable.  It's deprecated, and scheduled
to vanish; see Documentation/feature-removal-schedule.txt ...

- Dave

  parent reply	other threads:[~2006-12-19 21:22 UTC|newest]

Thread overview: 119+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-19 18:52 Matthew Garrett
2006-12-19 19:34 ` Arjan van de Ven
2006-12-19 19:44   ` Matthew Garrett
2006-12-19 20:03     ` Arjan van de Ven
2006-12-19 20:08       ` Matthew Garrett
2006-12-19 20:23         ` Arjan van de Ven
2006-12-19 20:32           ` Matthew Garrett
2006-12-19 20:55             ` Arjan van de Ven
2006-12-21  0:08               ` Kyle Moffett
2006-12-19 21:34             ` David Brownell
2006-12-20  0:25               ` Matthew Garrett
2006-12-20  3:59                 ` Changes to " David Brownell
2006-12-20  4:26                   ` Matthew Garrett
2006-12-20  5:14                     ` David Brownell
2006-12-20  5:34                       ` Greg KH
2006-12-20  5:52                         ` Matthew Garrett
2006-12-20  7:50                           ` Arjan van de Ven
2006-12-20 12:53                             ` Network drivers that don't suspend on interface down Matthew Garrett
2006-12-20 13:38                               ` Arjan van de Ven
2006-12-20 14:31                                 ` Matthew Garrett
2006-12-20 15:51                                   ` Arjan van de Ven
2006-12-20 22:49                                     ` Stephen Hemminger
2006-12-20 23:37                                       ` Rick Jones
2006-12-19 23:51                                         ` Stephen Hemminger
2006-12-21  0:11                                       ` Francois Romieu
2006-12-20  0:26                                         ` Stephen Hemminger
2006-12-21 11:18                                           ` Francois Romieu
2006-12-21  1:12                                       ` Matthew Garrett
2006-12-21  2:05                                         ` Michael Wu
2006-12-21  2:18                                           ` Matthew Garrett
2006-12-21  2:38                                             ` Daniel Drake
2006-12-21  2:45                                               ` Matthew Garrett
2006-12-21  3:08                                                 ` Daniel Drake
2006-12-21  3:25                                                   ` Matthew Garrett
2006-12-21  3:37                                                     ` Dan Williams
2006-12-21  3:29                                                   ` Dan Williams
2006-12-21  3:14                                             ` Dan Williams
2006-12-21 13:14                                               ` jamal
2006-12-21  2:29                                         ` Daniel Drake
2006-12-21  2:10                                     ` Jesse Brandeburg
2006-12-21  8:54                                       ` Arjan van de Ven
2006-12-22  1:03                                   ` Herbert Xu
2006-12-23  8:54                                   ` Pavel Machek
2006-12-20 15:27                                 ` Olivier Galibert
2006-12-20 15:34                                   ` Arjan van de Ven
2006-12-20 16:40                                     ` Olivier Galibert
2006-12-20 17:21                                       ` Arjan van de Ven
2006-12-20 20:40                                         ` Benny Amorsen
2006-12-20 21:49                                           ` Arjan van de Ven
2006-12-20 21:15                                     ` Stefan Rompf
2006-12-20 14:00                               ` Jiri Benc
2006-12-20 18:12                                 ` Dan Williams
2006-12-21  1:15                                   ` Matthew Garrett
2006-12-21  1:57                                     ` Michael Wu
2006-12-21  2:20                                       ` Matthew Garrett
2006-12-21  3:02                                         ` Dan Williams
2006-12-21  3:06                                     ` Dan Williams
2006-12-21  3:14                                       ` Matthew Garrett
2006-12-21  3:32                                         ` Dan Williams
2006-12-21 13:19                                           ` Sven-Haegar Koch
2006-12-21 17:16                                             ` Dan Williams
2006-12-21 18:27                                       ` Valdis.Kletnieks
2006-12-22  1:25                                         ` Matt Domsch
2006-12-20 16:04                               ` Maciej W. Rozycki
2006-12-22 21:09                       ` Changes to PM layer break userspace Pavel Machek
2006-12-24  7:02                         ` David Brownell
2006-12-28 13:31                           ` Alan
2006-12-28 16:04                             ` Arjan van de Ven
2006-12-29  5:27                             ` David Brownell
2006-12-20  2:15               ` Changes to sysfs " Andrew Morton
2006-12-20  2:35                 ` Randy Dunlap
2006-12-20  3:49                   ` Andrew Morton
2006-12-20  3:29                 ` David Brownell
2006-12-21  3:51                   ` Andrew Morton
2006-12-21  4:56                     ` David Brownell
2006-12-21  5:02                       ` Andrew Morton
2006-12-21  7:05                         ` David Brownell
2006-12-21  8:27                         ` Arjan van de Ven
2006-12-22 20:44     ` Pavel Machek
2006-12-23 14:02       ` Stefan Seyfried
2006-12-19 21:22 ` David Brownell [this message]
2006-12-19 22:57   ` Matthew Garrett
2006-12-19 23:36     ` Changes to " David Brownell
2006-12-20  0:09       ` Matthew Garrett
2006-12-20  3:19         ` David Brownell
2006-12-20  3:43           ` Matthew Garrett
2006-12-20  4:15             ` David Brownell
2006-12-20  4:56               ` [PATCH 1/2] Fix /sys/device/.../power/state Matthew Garrett
2006-12-20 21:18                 ` David Brownell
2006-12-21  1:29                   ` Matthew Garrett
2006-12-21  3:04                     ` David Brownell
2006-12-21  4:06                       ` Matthew Garrett
2006-12-21  4:51                         ` David Brownell
2007-01-25  5:00                         ` [PATCH] Fix /sys/device/.../power/state regression Matthew Garrett
2007-01-26 19:59                           ` Andrew Morton
2007-01-26 20:42                             ` Greg KH
2007-01-27  1:26                               ` Matthew Garrett
2007-01-27 17:19                             ` Pavel Machek
2007-01-26 20:41                           ` Greg KH
2007-01-26 21:56                             ` David Brownell
2007-01-26 22:19                               ` Greg KH
2007-01-26 23:15                               ` Matthew Garrett
2007-01-27  0:42                                 ` David Brownell
2007-01-27  0:56                                   ` Andrew Morton
2007-01-27  2:40                                     ` David Brownell
2007-01-27 17:38                                     ` Pavel Machek
2007-01-27 22:42                                       ` Matthew Garrett
2007-01-31 10:34                                         ` Pavel Machek
2007-01-27  1:19                                   ` Matthew Garrett
2007-01-27  3:02                                     ` David Brownell
2007-01-29 17:36                                       ` Stephen Hemminger
2007-01-27 13:17                           ` Pavel Machek
2007-01-30 18:43                             ` Eric Piel
2007-01-30 18:47                               ` Oliver Neukum
2007-01-30 19:01                                 ` Eric Piel
2007-01-31 10:55                                 ` Jiri Kosina
2007-01-31 11:03                                   ` Oliver Neukum
2006-12-20  4:56               ` [PATCH 2/2] Update feature-removal-schedule.txt Matthew Garrett
2006-12-22 20:47         ` Changes to PM layer break userspace Pavel Machek

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=200612191322.13378.david-b@pacbell.net \
    --to=david-b@pacbell.net \
    --cc=gregkh@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mjg59@srcf.ucam.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

Powered by JetHome