Karol Herbst
2019-Oct-01 16:21 UTC
[Nouveau] [RFC PATCH] pci: prevent putting pcie devices into lower device states on certain intel bridges
On Tue, Oct 1, 2019 at 3:27 PM Bjorn Helgaas <helgaas at kernel.org> wrote:> > On Mon, Sep 30, 2019 at 06:36:12PM +0200, Karol Herbst wrote: > > On Mon, Sep 30, 2019 at 6:30 PM Mika Westerberg > > <mika.westerberg at linux.intel.com> wrote: > > > > > > On Mon, Sep 30, 2019 at 06:05:14PM +0200, Karol Herbst wrote: > > > > still happens with your patch applied. The machine simply gets shut down. > > > > > > > > dmesg can be found here: > > > > https://gist.githubusercontent.com/karolherbst/40eb091c7b7b33ef993525de660f1a3b/raw/2380e31f566e93e5ba7c87ef545420965d4c492c/gistfile1.txt > > > > > > Looking your dmesg: > > > > > > Sep 30 17:24:27 kernel: nouveau 0000:01:00.0: DRM: DCB version 4.1 > > > Sep 30 17:24:27 kernel: nouveau 0000:01:00.0: DRM: MM: using COPY for buffer copies > > > Sep 30 17:24:27 kernel: [drm] Initialized nouveau 1.3.1 20120801 for 0000:01:00.0 on minor 1 > > > > > > I would assume it runtime suspends here. Then it wakes up because of PCI > > > access from userspace: > > > > > > Sep 30 17:24:42 kernel: pci_raw_set_power_state: 56 callbacks suppressed > > > > > > and for some reason it does not get resumed properly. There are also few > > > warnings from ACPI that might be relevant: > > > > > > Sep 30 17:24:27 kernel: ACPI Warning: \_SB.PCI0.GFX0._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20190509/nsarguments-59) > > > Sep 30 17:24:27 kernel: ACPI Warning: \_SB.PCI0.PEG0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20190509/nsarguments-59) > > > > afaik this is the case for essentially every laptop out there. > > I think we should look into this a little bit. > acpi_ns_check_argument_types() checks the argument type and prints > this message, but AFAICT it doesn't actually fix anything or prevent > execution of the method, so I have no idea what happens when we > actually execute the _DSM. >I can assure you that this warning happens on every single laptop out there with dual Nvidia graphics and it's essentially just a firmware bug. And it never caused any issues on any of the older laptops (or newest one for that matter).> If we execute this _DSM as part of power management, and the _DSM > doesn't work right, it would be no surprise that we have problems. > > Maybe we could learn something by turning on ACPI_DB_PARSE output (see > Documentation/firmware-guide/acpi/debug.rst). > > You must have an acpidump already from all your investigation. Can > you put it somewhere, e.g., bugzilla.kernel.org, and include a URL?Will do so later, right now I am traveling to XDC and will have more time for that then.
Bjorn Helgaas
2019-Oct-01 19:34 UTC
[Nouveau] [RFC PATCH] pci: prevent putting pcie devices into lower device states on certain intel bridges
On Tue, Oct 01, 2019 at 06:21:28PM +0200, Karol Herbst wrote:> On Tue, Oct 1, 2019 at 3:27 PM Bjorn Helgaas <helgaas at kernel.org> wrote: > > On Mon, Sep 30, 2019 at 06:36:12PM +0200, Karol Herbst wrote: > > > On Mon, Sep 30, 2019 at 6:30 PM Mika Westerberg > > > <mika.westerberg at linux.intel.com> wrote: > > > > > > > > On Mon, Sep 30, 2019 at 06:05:14PM +0200, Karol Herbst wrote: > > > > > still happens with your patch applied. The machine simply gets shut down. > > > > > > > > > > dmesg can be found here: > > > > > https://gist.githubusercontent.com/karolherbst/40eb091c7b7b33ef993525de660f1a3b/raw/2380e31f566e93e5ba7c87ef545420965d4c492c/gistfile1.txt > > > > > > > > Looking your dmesg: > > > > > > > > Sep 30 17:24:27 kernel: nouveau 0000:01:00.0: DRM: DCB version 4.1 > > > > Sep 30 17:24:27 kernel: nouveau 0000:01:00.0: DRM: MM: using COPY for buffer copies > > > > Sep 30 17:24:27 kernel: [drm] Initialized nouveau 1.3.1 20120801 for 0000:01:00.0 on minor 1 > > > > > > > > I would assume it runtime suspends here. Then it wakes up because of PCI > > > > access from userspace: > > > > > > > > Sep 30 17:24:42 kernel: pci_raw_set_power_state: 56 callbacks suppressed > > > > > > > > and for some reason it does not get resumed properly. There are also few > > > > warnings from ACPI that might be relevant: > > > > > > > > Sep 30 17:24:27 kernel: ACPI Warning: \_SB.PCI0.GFX0._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20190509/nsarguments-59) > > > > Sep 30 17:24:27 kernel: ACPI Warning: \_SB.PCI0.PEG0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20190509/nsarguments-59) > > > > > > afaik this is the case for essentially every laptop out there. > > > > I think we should look into this a little bit. > > acpi_ns_check_argument_types() checks the argument type and prints > > this message, but AFAICT it doesn't actually fix anything or prevent > > execution of the method, so I have no idea what happens when we > > actually execute the _DSM. > > I can assure you that this warning happens on every single laptop out > there with dual Nvidia graphics and it's essentially just a firmware > bug. And it never caused any issues on any of the older laptops (or > newest one for that matter).Rafael, do you know anything about this? If ACPI has some sort of workaround so it can execute the method correctly anyway, maybe we should remove or reword the warning? Or if this does prevent execution of the method, maybe we need to add a workaround since the problem is so prevalent in the field?> > If we execute this _DSM as part of power management, and the _DSM > > doesn't work right, it would be no surprise that we have problems. > > > > Maybe we could learn something by turning on ACPI_DB_PARSE output (see > > Documentation/firmware-guide/acpi/debug.rst). > > > > You must have an acpidump already from all your investigation. Can > > you put it somewhere, e.g., bugzilla.kernel.org, and include a URL? > > Will do so later, right now I am traveling to XDC and will have more > time for that then.
Rafael J. Wysocki
2019-Oct-02 07:51 UTC
[Nouveau] [RFC PATCH] pci: prevent putting pcie devices into lower device states on certain intel bridges
On Tue, Oct 1, 2019 at 9:34 PM Bjorn Helgaas <helgaas at kernel.org> wrote:> > On Tue, Oct 01, 2019 at 06:21:28PM +0200, Karol Herbst wrote: > > On Tue, Oct 1, 2019 at 3:27 PM Bjorn Helgaas <helgaas at kernel.org> wrote: > > > On Mon, Sep 30, 2019 at 06:36:12PM +0200, Karol Herbst wrote: > > > > On Mon, Sep 30, 2019 at 6:30 PM Mika Westerberg > > > > <mika.westerberg at linux.intel.com> wrote: > > > > > > > > > > On Mon, Sep 30, 2019 at 06:05:14PM +0200, Karol Herbst wrote: > > > > > > still happens with your patch applied. The machine simply gets shut down. > > > > > > > > > > > > dmesg can be found here: > > > > > > https://gist.githubusercontent.com/karolherbst/40eb091c7b7b33ef993525de660f1a3b/raw/2380e31f566e93e5ba7c87ef545420965d4c492c/gistfile1.txt > > > > > > > > > > Looking your dmesg: > > > > > > > > > > Sep 30 17:24:27 kernel: nouveau 0000:01:00.0: DRM: DCB version 4.1 > > > > > Sep 30 17:24:27 kernel: nouveau 0000:01:00.0: DRM: MM: using COPY for buffer copies > > > > > Sep 30 17:24:27 kernel: [drm] Initialized nouveau 1.3.1 20120801 for 0000:01:00.0 on minor 1 > > > > > > > > > > I would assume it runtime suspends here. Then it wakes up because of PCI > > > > > access from userspace: > > > > > > > > > > Sep 30 17:24:42 kernel: pci_raw_set_power_state: 56 callbacks suppressed > > > > > > > > > > and for some reason it does not get resumed properly. There are also few > > > > > warnings from ACPI that might be relevant: > > > > > > > > > > Sep 30 17:24:27 kernel: ACPI Warning: \_SB.PCI0.GFX0._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20190509/nsarguments-59) > > > > > Sep 30 17:24:27 kernel: ACPI Warning: \_SB.PCI0.PEG0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20190509/nsarguments-59) > > > > > > > > afaik this is the case for essentially every laptop out there. > > > > > > I think we should look into this a little bit. > > > acpi_ns_check_argument_types() checks the argument type and prints > > > this message, but AFAICT it doesn't actually fix anything or prevent > > > execution of the method, so I have no idea what happens when we > > > actually execute the _DSM. > > > > I can assure you that this warning happens on every single laptop out > > there with dual Nvidia graphics and it's essentially just a firmware > > bug. And it never caused any issues on any of the older laptops (or > > newest one for that matter). > > Rafael, do you know anything about this?IIRC ACPICA will simply run the method with the assumption that the AML in there will deal with the arguments properly anyway.> If ACPI has some sort of workaround so it can execute the method correctly > anyway, maybe we should remove or reword the warning?I can agree that printing these warnings on a user system by default is not very useful, at least as long as no visible functional issues are present, but if there are such issues, it is good to know that something fishy is going on. For instance, while the method may execute successfully, the result of that may not be as expected. So maybe they should be debug level or similar.> Or if this does prevent execution of the method, maybe we need to add > a workaround since the problem is so prevalent in the field?As par the above, no workarounds should be needed, but I'll let Bob and Erik (CCed now) confirm or deny this. A side note: please CC all discussions regarding general ACPI issues to linux-acpi, so they can get the attention of all of the right people (who may not subscribe linux-pci, for example).
Reasonably Related Threads
- [RFC PATCH] pci: prevent putting pcie devices into lower device states on certain intel bridges
- [RFC PATCH] pci: prevent putting pcie devices into lower device states on certain intel bridges
- [RFC PATCH] pci: prevent putting pcie devices into lower device states on certain intel bridges
- [RFC PATCH] pci: prevent putting pcie devices into lower device states on certain intel bridges
- [RFC PATCH] pci: prevent putting pcie devices into lower device states on certain intel bridges