* PME# for add-on cards
@ 2009-08-23 23:12 Rafael J. Wysocki
2009-08-24 0:44 ` [linux-pm] " Alan Stern
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Rafael J. Wysocki @ 2009-08-23 23:12 UTC (permalink / raw)
To: ACPI Devel Maling List; +Cc: Linux PCI, pm list, Len Brown
Hi,
Recently we've had a bug report indicating that WoL doesn't work with e100,
although the driver does everything needed to support it. Apparently, the user
had to echo PCI0 to /proc/acpi/wakeup to make it work.
After some debugging it turned out that PCI0 is the PCI host bridge
(no-bus:pci0000:00), so apparently echoing PCI0 to /proc/acpi/wakeup causes
a wake-up GPE to be set up for the host bridge which triggers wake-up once
eth0 signals PME#.
So, it looks like we need to set up wake-up GPE for a host bridge for PME#
from add-on cards to work, at least on this particular box.
First, I wonder if that's the case in general (anybody knows?). Second, if
that is the case, would it be a good idea to set up the host bridge wake-up GPE
by default?
Rafael
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [linux-pm] PME# for add-on cards 2009-08-23 23:12 PME# for add-on cards Rafael J. Wysocki @ 2009-08-24 0:44 ` Alan Stern [not found] ` <20090824094429.GB1134@srcf.ucam.org> 2009-08-26 12:50 ` Maxim Levitsky 2 siblings, 0 replies; 9+ messages in thread From: Alan Stern @ 2009-08-24 0:44 UTC (permalink / raw) To: Rafael J. Wysocki; +Cc: ACPI Devel Maling List, Linux PCI, pm list On Mon, 24 Aug 2009, Rafael J. Wysocki wrote: > Hi, > > Recently we've had a bug report indicating that WoL doesn't work with e100, > although the driver does everything needed to support it. Apparently, the user > had to echo PCI0 to /proc/acpi/wakeup to make it work. > > After some debugging it turned out that PCI0 is the PCI host bridge > (no-bus:pci0000:00), so apparently echoing PCI0 to /proc/acpi/wakeup causes > a wake-up GPE to be set up for the host bridge which triggers wake-up once > eth0 signals PME#. > > So, it looks like we need to set up wake-up GPE for a host bridge for PME# > from add-on cards to work, at least on this particular box. > > First, I wonder if that's the case in general (anybody knows?). Second, if > that is the case, would it be a good idea to set up the host bridge wake-up GPE > by default? Regarding the last question: Yes, of course. Why wouldn't it be a good idea? Alan Stern ^ permalink raw reply [flat|nested] 9+ messages in thread
[parent not found: <20090824094429.GB1134@srcf.ucam.org>]
* Re: PME# for add-on cards [not found] ` <20090824094429.GB1134@srcf.ucam.org> @ 2009-08-24 18:39 ` Rafael J. Wysocki 2009-08-24 19:12 ` Jesse Barnes 0 siblings, 1 reply; 9+ messages in thread From: Rafael J. Wysocki @ 2009-08-24 18:39 UTC (permalink / raw) To: Matthew Garrett, Alan Stern Cc: ACPI Devel Maling List, Linux PCI, pm list, Len Brown On Monday 24 August 2009, Matthew Garrett wrote: > On Mon, Aug 24, 2009 at 01:12:39AM +0200, Rafael J. Wysocki wrote: > > > After some debugging it turned out that PCI0 is the PCI host bridge > > (no-bus:pci0000:00), so apparently echoing PCI0 to /proc/acpi/wakeup causes > > a wake-up GPE to be set up for the host bridge which triggers wake-up once > > eth0 signals PME#. > > Mm. That sounds entirely plausible. If it were a built-in card then the > DSDT would provide that GPE, but as an add-in... > > > First, I wonder if that's the case in general (anybody knows?). Second, if > > that is the case, would it be a good idea to set up the host bridge wake-up GPE > > by default? > > I'd expect this to be the case in general, yes. Systems that work > without this probably have the BIOS enable it themselves on suspend. I > suspect we'll have to set it to make sure. OK, Matthew, Alan, thanks for your opinions. I'll try to implement this, then. Best, Rafael ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: PME# for add-on cards 2009-08-24 18:39 ` Rafael J. Wysocki @ 2009-08-24 19:12 ` Jesse Barnes 2009-08-25 23:42 ` Henrique de Moraes Holschuh 0 siblings, 1 reply; 9+ messages in thread From: Jesse Barnes @ 2009-08-24 19:12 UTC (permalink / raw) To: Rafael J. Wysocki; +Cc: Linux PCI, ACPI Devel Maling List, list, pm On Mon, 24 Aug 2009 20:39:07 +0200 "Rafael J. Wysocki" <rjw@sisk.pl> wrote: > On Monday 24 August 2009, Matthew Garrett wrote: > > On Mon, Aug 24, 2009 at 01:12:39AM +0200, Rafael J. Wysocki wrote: > > > > > After some debugging it turned out that PCI0 is the PCI host > > > bridge (no-bus:pci0000:00), so apparently echoing PCI0 > > > to /proc/acpi/wakeup causes a wake-up GPE to be set up for the > > > host bridge which triggers wake-up once eth0 signals PME#. > > > > Mm. That sounds entirely plausible. If it were a built-in card then > > the DSDT would provide that GPE, but as an add-in... > > > > > First, I wonder if that's the case in general (anybody knows?). > > > Second, if that is the case, would it be a good idea to set up > > > the host bridge wake-up GPE by default? > > > > I'd expect this to be the case in general, yes. Systems that work > > without this probably have the BIOS enable it themselves on > > suspend. I suspect we'll have to set it to make sure. > > OK, Matthew, Alan, thanks for your opinions. > > I'll try to implement this, then. I think that's the best approach. The only risk that I can see immediately is that we'll expose ourselves to add-in cards with flakey PME# signals. We can worry about that when/if we see it though. Thanks, -- Jesse Barnes, Intel Open Source Technology Center ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: PME# for add-on cards 2009-08-24 19:12 ` Jesse Barnes @ 2009-08-25 23:42 ` Henrique de Moraes Holschuh 2009-08-27 16:13 ` Jesse Barnes 0 siblings, 1 reply; 9+ messages in thread From: Henrique de Moraes Holschuh @ 2009-08-25 23:42 UTC (permalink / raw) To: Jesse Barnes Cc: Rafael J. Wysocki, Matthew Garrett, Alan Stern, ACPI Devel Maling List, Linux PCI, pm list, Len Brown On Mon, 24 Aug 2009, Jesse Barnes wrote: > On Mon, 24 Aug 2009 20:39:07 +0200 > "Rafael J. Wysocki" <rjw@sisk.pl> wrote: > > On Monday 24 August 2009, Matthew Garrett wrote: > > > On Mon, Aug 24, 2009 at 01:12:39AM +0200, Rafael J. Wysocki wrote: > > > > After some debugging it turned out that PCI0 is the PCI host > > > > bridge (no-bus:pci0000:00), so apparently echoing PCI0 > > > > to /proc/acpi/wakeup causes a wake-up GPE to be set up for the > > > > host bridge which triggers wake-up once eth0 signals PME#. > > > > > > Mm. That sounds entirely plausible. If it were a built-in card then > > > the DSDT would provide that GPE, but as an add-in... > > > > > > > First, I wonder if that's the case in general (anybody knows?). > > > > Second, if that is the case, would it be a good idea to set up > > > > the host bridge wake-up GPE by default? > > > > > > I'd expect this to be the case in general, yes. Systems that work > > > without this probably have the BIOS enable it themselves on > > > suspend. I suspect we'll have to set it to make sure. > > > > OK, Matthew, Alan, thanks for your opinions. > > > > I'll try to implement this, then. > > I think that's the best approach. The only risk that I can see > immediately is that we'll expose ourselves to add-in cards with flakey > PME# signals. We can worry about that when/if we see it though. I have seen it, an old atheros-based wifi card packaged by 3COM. My Intel D875PBZ motherboard could not turn off (it would turn back on due to #PME) with that crap installed. Probably the BIOS didn't defend itself enough against PME on power _off_. I didn't even need to have ANY driver at all for that card for it to be a hassle. I have sinced given that card away to someone who runs it under Windows in a different motherboard (that probably masks #PME on shutdown :p). May I humbly suggest a command-line switch to let the user disable the new behaviour (or even selectively disable/enable it per host bridge) since day one? The default can be enabled, let's priorize good hardware and firmware over buggy crap! but let's make it easy to work around any issues it could cause right from the beginning, because they _will_ happen. -- "One disk to rule them all, One disk to find them. One disk to bring them all and in the darkness grind them. In the Land of Redmond where the shadows lie." -- The Silicon Valley Tarot Henrique Holschuh ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: PME# for add-on cards 2009-08-25 23:42 ` Henrique de Moraes Holschuh @ 2009-08-27 16:13 ` Jesse Barnes 2009-08-27 19:41 ` Rafael J. Wysocki 0 siblings, 1 reply; 9+ messages in thread From: Jesse Barnes @ 2009-08-27 16:13 UTC (permalink / raw) To: Henrique de Moraes Holschuh Cc: Rafael J. Wysocki, Matthew Garrett, Alan Stern, ACPI Devel Maling List, Linux PCI, pm list, Len Brown On Tue, 25 Aug 2009 20:42:03 -0300 Henrique de Moraes Holschuh <hmh@hmh.eng.br> wrote: > On Mon, 24 Aug 2009, Jesse Barnes wrote: > > On Mon, 24 Aug 2009 20:39:07 +0200 > > "Rafael J. Wysocki" <rjw@sisk.pl> wrote: > > > On Monday 24 August 2009, Matthew Garrett wrote: > > > > On Mon, Aug 24, 2009 at 01:12:39AM +0200, Rafael J. Wysocki > > > > wrote: > > > > > After some debugging it turned out that PCI0 is the PCI host > > > > > bridge (no-bus:pci0000:00), so apparently echoing PCI0 > > > > > to /proc/acpi/wakeup causes a wake-up GPE to be set up for the > > > > > host bridge which triggers wake-up once eth0 signals PME#. > > > > > > > > Mm. That sounds entirely plausible. If it were a built-in card > > > > then the DSDT would provide that GPE, but as an add-in... > > > > > > > > > First, I wonder if that's the case in general (anybody > > > > > knows?). Second, if that is the case, would it be a good idea > > > > > to set up the host bridge wake-up GPE by default? > > > > > > > > I'd expect this to be the case in general, yes. Systems that > > > > work without this probably have the BIOS enable it themselves on > > > > suspend. I suspect we'll have to set it to make sure. > > > > > > OK, Matthew, Alan, thanks for your opinions. > > > > > > I'll try to implement this, then. > > > > I think that's the best approach. The only risk that I can see > > immediately is that we'll expose ourselves to add-in cards with > > flakey PME# signals. We can worry about that when/if we see it > > though. > > I have seen it, an old atheros-based wifi card packaged by 3COM. My > Intel D875PBZ motherboard could not turn off (it would turn back on > due to #PME) with that crap installed. Probably the BIOS didn't > defend itself enough against PME on power _off_. I didn't even need > to have ANY driver at all for that card for it to be a hassle. > > I have sinced given that card away to someone who runs it under > Windows in a different motherboard (that probably masks #PME on > shutdown :p). > > May I humbly suggest a command-line switch to let the user disable > the new behaviour (or even selectively disable/enable it per host > bridge) since day one? The default can be enabled, let's priorize > good hardware and firmware over buggy crap! but let's make it easy > to work around any issues it could cause right from the beginning, > because they _will_ happen. Hopefully we can do even better than that with per-device quirks (i.e. only disable PME on a bridge if a child device is buggy). Rafael? -- Jesse Barnes, Intel Open Source Technology Center ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: PME# for add-on cards 2009-08-27 16:13 ` Jesse Barnes @ 2009-08-27 19:41 ` Rafael J. Wysocki 0 siblings, 0 replies; 9+ messages in thread From: Rafael J. Wysocki @ 2009-08-27 19:41 UTC (permalink / raw) To: Jesse Barnes Cc: Henrique de Moraes Holschuh, Matthew Garrett, Alan Stern, ACPI Devel Maling List, Linux PCI, pm list, Len Brown On Thursday 27 August 2009, Jesse Barnes wrote: > On Tue, 25 Aug 2009 20:42:03 -0300 > Henrique de Moraes Holschuh <hmh@hmh.eng.br> wrote: > > > On Mon, 24 Aug 2009, Jesse Barnes wrote: > > > On Mon, 24 Aug 2009 20:39:07 +0200 > > > "Rafael J. Wysocki" <rjw@sisk.pl> wrote: > > > > On Monday 24 August 2009, Matthew Garrett wrote: > > > > > On Mon, Aug 24, 2009 at 01:12:39AM +0200, Rafael J. Wysocki > > > > > wrote: > > > > > > After some debugging it turned out that PCI0 is the PCI host > > > > > > bridge (no-bus:pci0000:00), so apparently echoing PCI0 > > > > > > to /proc/acpi/wakeup causes a wake-up GPE to be set up for the > > > > > > host bridge which triggers wake-up once eth0 signals PME#. > > > > > > > > > > Mm. That sounds entirely plausible. If it were a built-in card > > > > > then the DSDT would provide that GPE, but as an add-in... > > > > > > > > > > > First, I wonder if that's the case in general (anybody > > > > > > knows?). Second, if that is the case, would it be a good idea > > > > > > to set up the host bridge wake-up GPE by default? > > > > > > > > > > I'd expect this to be the case in general, yes. Systems that > > > > > work without this probably have the BIOS enable it themselves on > > > > > suspend. I suspect we'll have to set it to make sure. > > > > > > > > OK, Matthew, Alan, thanks for your opinions. > > > > > > > > I'll try to implement this, then. > > > > > > I think that's the best approach. The only risk that I can see > > > immediately is that we'll expose ourselves to add-in cards with > > > flakey PME# signals. We can worry about that when/if we see it > > > though. > > > > I have seen it, an old atheros-based wifi card packaged by 3COM. My > > Intel D875PBZ motherboard could not turn off (it would turn back on > > due to #PME) with that crap installed. Probably the BIOS didn't > > defend itself enough against PME on power _off_. I didn't even need > > to have ANY driver at all for that card for it to be a hassle. > > > > I have sinced given that card away to someone who runs it under > > Windows in a different motherboard (that probably masks #PME on > > shutdown :p). > > > > May I humbly suggest a command-line switch to let the user disable > > the new behaviour (or even selectively disable/enable it per host > > bridge) since day one? The default can be enabled, let's priorize > > good hardware and firmware over buggy crap! but let's make it easy > > to work around any issues it could cause right from the beginning, > > because they _will_ happen. > > Hopefully we can do even better than that with per-device quirks (i.e. > only disable PME on a bridge if a child device is buggy). > > Rafael? First off, this is about enabling the host bridge's GPE to wake up the system rather than PME and I'm not yet sure we can generally do that for all host bridges (investigation in progress). The particular system I was talking about in the first message in this thread had a specific entry for the host bridge in /proc/acpi/wakeup while the other systems I looked at didn't appear to have anything like this. At the moment I think it should be safe to set wakeup.state.enabled for the host bridge provided that it has wakeup.flags.valid set (otherwise it wouldn't work anyway). The systems where this is known unsafe should be regarded as buggy and handled through quirks IMO. Thanks, Rafael ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: PME# for add-on cards 2009-08-23 23:12 PME# for add-on cards Rafael J. Wysocki 2009-08-24 0:44 ` [linux-pm] " Alan Stern [not found] ` <20090824094429.GB1134@srcf.ucam.org> @ 2009-08-26 12:50 ` Maxim Levitsky 2009-08-26 21:26 ` Rafael J. Wysocki 2 siblings, 1 reply; 9+ messages in thread From: Maxim Levitsky @ 2009-08-26 12:50 UTC (permalink / raw) To: Rafael J. Wysocki; +Cc: ACPI Devel Maling List, Linux PCI, pm list, Len Brown On Mon, 2009-08-24 at 01:12 +0200, Rafael J. Wysocki wrote: > Hi, > > Recently we've had a bug report indicating that WoL doesn't work with e100, > although the driver does everything needed to support it. Apparently, the user > had to echo PCI0 to /proc/acpi/wakeup to make it work. > > After some debugging it turned out that PCI0 is the PCI host bridge > (no-bus:pci0000:00), so apparently echoing PCI0 to /proc/acpi/wakeup causes > a wake-up GPE to be set up for the host bridge which triggers wake-up once > eth0 signals PME#. > > So, it looks like we need to set up wake-up GPE for a host bridge for PME# > from add-on cards to work, at least on this particular box. > > First, I wonder if that's the case in general (anybody knows?). Second, if > that is the case, would it be a good idea to set up the host bridge wake-up GPE > by default? > > Rafael > This is very known problem (at least for me) On my desktop, /proc/acpi/wakeup controls all the wakeup sources, and if disabled, nether addon cards (ethernet) nor internal devices (usb,ethernet) will wake up the system. I think that proc/acpi/wakeup should be synced with power/wakeup attribute. Also, I would be really happy to see bogus (empty) power/wakeup attributes be gone. Also, something is broken in regards to PME from addon cards: http://www.spinics.net/lists/netdev/msg104460.html Best regards, Maxim Levitsky ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: PME# for add-on cards 2009-08-26 12:50 ` Maxim Levitsky @ 2009-08-26 21:26 ` Rafael J. Wysocki 0 siblings, 0 replies; 9+ messages in thread From: Rafael J. Wysocki @ 2009-08-26 21:26 UTC (permalink / raw) To: Maxim Levitsky; +Cc: ACPI Devel Maling List, Linux PCI, pm list, Len Brown On Wednesday 26 August 2009, Maxim Levitsky wrote: > On Mon, 2009-08-24 at 01:12 +0200, Rafael J. Wysocki wrote: > > Hi, > > > > Recently we've had a bug report indicating that WoL doesn't work with e100, > > although the driver does everything needed to support it. Apparently, the user > > had to echo PCI0 to /proc/acpi/wakeup to make it work. > > > > After some debugging it turned out that PCI0 is the PCI host bridge > > (no-bus:pci0000:00), so apparently echoing PCI0 to /proc/acpi/wakeup causes > > a wake-up GPE to be set up for the host bridge which triggers wake-up once > > eth0 signals PME#. > > > > So, it looks like we need to set up wake-up GPE for a host bridge for PME# > > from add-on cards to work, at least on this particular box. > > > > First, I wonder if that's the case in general (anybody knows?). Second, if > > that is the case, would it be a good idea to set up the host bridge wake-up GPE > > by default? > > > > Rafael > > > > This is very known problem (at least for me) > > On my desktop, /proc/acpi/wakeup controls all the wakeup sources, and if > disabled, nether addon cards (ethernet) nor internal devices > (usb,ethernet) will wake up the system. Can you please open a Bugzilla entry for that and add my address to the CC list in there? > I think that proc/acpi/wakeup should be synced with power/wakeup > attribute. In fact proc/acpi/wakeup is going to be removed at one point in future, so we're moving the functionality to power/wakeup. > Also, I would be really happy to see bogus (empty) power/wakeup > attributes be gone. They are not bogus. Empty power/wakeup means that the device is not capable of waking up the system. > Also, something is broken in regards to PME from addon cards: > http://www.spinics.net/lists/netdev/msg104460.html I'll have a look. Thanks, Rafael ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-08-27 19:41 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-23 23:12 PME# for add-on cards Rafael J. Wysocki
2009-08-24 0:44 ` [linux-pm] " Alan Stern
[not found] ` <20090824094429.GB1134@srcf.ucam.org>
2009-08-24 18:39 ` Rafael J. Wysocki
2009-08-24 19:12 ` Jesse Barnes
2009-08-25 23:42 ` Henrique de Moraes Holschuh
2009-08-27 16:13 ` Jesse Barnes
2009-08-27 19:41 ` Rafael J. Wysocki
2009-08-26 12:50 ` Maxim Levitsky
2009-08-26 21:26 ` Rafael J. Wysocki
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox