RE: [PATCH] PCI/ACPI: Whitelist hotplug ports for D3 if power managed by ACPI

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[AMD Public Use]



> -----Original Message-----
> From: Rafael J. Wysocki <rafael@xxxxxxxxxx>
> Sent: Friday, October 2, 2020 10:25 AM
> To: Deucher, Alexander <Alexander.Deucher@xxxxxxx>
> Cc: Rafael J. Wysocki <rafael@xxxxxxxxxx>; Lukas Wunner
> <lukas@xxxxxxxxx>; Aaron Zakhrov <aaron.zakhrov@xxxxxxxxx>; Michal
> Rostecki <mrostecki@xxxxxxxx>; Linux PCI <linux-pci@xxxxxxxxxxxxxxx>;
> Rafael J. Wysocki <rjw@xxxxxxxxxxxxx>; amd-gfx list <amd-
> gfx@xxxxxxxxxxxxxxxxxxxxx>; ACPI Devel Maling List <linux-
> acpi@xxxxxxxxxxxxxxx>; Shai Coleman <git@xxxxxxxxxxxxxxx>; Bjorn
> Helgaas <helgaas@xxxxxxxxxx>; Arthur Borsboom
> <arthurborsboom@xxxxxxxxx>; matoro <matoro@xxxxxxxxxx>; Mika
> Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>; Len Brown
> <lenb@xxxxxxxxxx>
> Subject: Re: [PATCH] PCI/ACPI: Whitelist hotplug ports for D3 if power
> managed by ACPI
> 
> On Fri, Oct 2, 2020 at 4:20 PM Deucher, Alexander
> <Alexander.Deucher@xxxxxxx> wrote:
> >
> > [AMD Public Use]
> >
> > > -----Original Message-----
> > > From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of
> > > Rafael J. Wysocki
> > > Sent: Friday, October 2, 2020 10:17 AM
> > > To: Lukas Wunner <lukas@xxxxxxxxx>
> > > Cc: Aaron Zakhrov <aaron.zakhrov@xxxxxxxxx>; Michal Rostecki
> > > <mrostecki@xxxxxxxx>; Linux PCI <linux-pci@xxxxxxxxxxxxxxx>; Rafael J.
> > > Wysocki <rjw@xxxxxxxxxxxxx>; amd-gfx list <amd-
> > > gfx@xxxxxxxxxxxxxxxxxxxxx>; ACPI Devel Maling List <linux-
> > > acpi@xxxxxxxxxxxxxxx>; Shai Coleman <git@xxxxxxxxxxxxxxx>; Bjorn
> > > Helgaas <helgaas@xxxxxxxxxx>; Arthur Borsboom
> > > <arthurborsboom@xxxxxxxxx>; matoro <matoro@xxxxxxxxxx>; Deucher,
> > > Alexander <Alexander.Deucher@xxxxxxx>; Mika Westerberg
> > > <mika.westerberg@xxxxxxxxxxxxxxx>; Len Brown <lenb@xxxxxxxxxx>
> > > Subject: Re: [PATCH] PCI/ACPI: Whitelist hotplug ports for D3 if
> > > power managed by ACPI
> > >
> > > On Fri, Oct 2, 2020 at 7:17 AM Lukas Wunner <lukas@xxxxxxxxx> wrote:
> > > >
> > > > Recent laptops with dual AMD GPUs fail to suspend the discrete
> > > > GPU, thus causing lockups on system sleep and high power
> > > > consumption at
> > > runtime.
> > > > The discrete GPU would normally be suspended to D3cold by turning
> > > > off ACPI _PR3 Power Resources of the Root Port above the GPU.
> > > >
> > > > However on affected systems, the Root Port is hotplug-capable and
> > > > pci_bridge_d3_possible() only allows hotplug ports to go to D3 if
> > > > they belong to a Thunderbolt device or if the Root Port possesses
> > > > a "HotPlugSupportInD3" ACPI property.  Neither is the case on
> > > > affected laptops.  The reason for whitelisting only specific,
> > > > known to work hotplug ports for D3 is that there have been reports
> > > > of SkyLake Xeon-SP systems raising Hardware Error NMIs upon
> > > > suspending their
> > > hotplug ports:
> > > >
> > >
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flo
> > > re
> > > > .kernel.org%2Flinux-pci%2F20170503180426.GA4058%40otc-nc-
> > > 03%2F&amp;dat
> > > >
> > >
> a=02%7C01%7Calexander.deucher%40amd.com%7C99ec20b6d4dc410baf800
> > > 8d866dd
> > > >
> > >
> e688%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C6373724505855
> > > 84491&a
> > > >
> > >
> mp;sdata=EPFyxPA0MDBuAkvH7bbp2wHYnpos8p%2BoZmzlUvvdAek%3D&a
> > > mp;reserved
> > > > =0
> > > >
> > > > But if a hotplug port is power manageable by ACPI (as can be
> > > > detected through presence of Power Resources and corresponding
> > > > _PS0 and _PS3
> > > > methods) then it ought to be safe to suspend it to D3.  To this
> > > > end, amend acpi_pci_bridge_d3() to whitelist such ports for D3.
> > > >
> > > > Link:
> > > >
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2F
> > > > gitl
> > > > ab.freedesktop.org%2Fdrm%2Famd%2F-
> > > %2Fissues%2F1222&amp;data=02%7C01%7C
> > > >
> > >
> alexander.deucher%40amd.com%7C99ec20b6d4dc410baf8008d866dde688%
> > > 7C3dd89
> > > >
> > >
> 61fe4884e608e11a82d994e183d%7C0%7C0%7C637372450585584491&amp;sd
> > > ata=cMj
> > > >
> > >
> LDIbjp8RQiWX8pgK2bDUH%2B0u3oquy3TqeT9QjZGE%3D&amp;reserved=0
> > > > Link:
> > > >
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2F
> > > > gitl
> > > > ab.freedesktop.org%2Fdrm%2Famd%2F-
> > > %2Fissues%2F1252&amp;data=02%7C01%7C
> > > >
> > >
> alexander.deucher%40amd.com%7C99ec20b6d4dc410baf8008d866dde688%
> > > 7C3dd89
> > > >
> > >
> 61fe4884e608e11a82d994e183d%7C0%7C0%7C637372450585584491&amp;sd
> > > ata=iP9
> > > >
> > >
> EqNcM15Dj4Ax%2BE6e2HaMWHEX%2B0IO3cMoi0NXWGzM%3D&amp;reser
> > > ved=0
> > > > Link:
> > > >
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2F
> > > > gitl
> > > > ab.freedesktop.org%2Fdrm%2Famd%2F-
> > > %2Fissues%2F1304&amp;data=02%7C01%7C
> > > >
> > >
> alexander.deucher%40amd.com%7C99ec20b6d4dc410baf8008d866dde688%
> > > 7C3dd89
> > > >
> > >
> 61fe4884e608e11a82d994e183d%7C0%7C0%7C637372450585584491&amp;sd
> > > ata=VlT
> > > >
> UV2UCH4RvKgTXZcpGOpkjZpfijmPgwtvKx6HRT04%3D&amp;reserved=0
> > > > Reported-and-tested-by: Arthur Borsboom
> <arthurborsboom@xxxxxxxxx>
> > > > Reported-and-tested-by: matoro <matoro@xxxxxxxxxx>
> > > > Reported-by: Aaron Zakhrov <aaron.zakhrov@xxxxxxxxx>
> > > > Reported-by: Michal Rostecki <mrostecki@xxxxxxxx>
> > > > Reported-by: Shai Coleman <git@xxxxxxxxxxxxxxx>
> > > > Signed-off-by: Lukas Wunner <lukas@xxxxxxxxx>
> > > > Cc: stable@xxxxxxxxxxxxxxx
> > > > Cc: Alex Deucher <alexander.deucher@xxxxxxx>
> > > > Cc: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> > > > Cc: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
> > > > ---
> > > >  drivers/pci/pci-acpi.c | 10 ++++++++++
> > > >  1 file changed, 10 insertions(+)
> > > >
> > > > diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c index
> > > > d5869a0..d9aa551 100644
> > > > --- a/drivers/pci/pci-acpi.c
> > > > +++ b/drivers/pci/pci-acpi.c
> > > > @@ -944,6 +944,16 @@ static bool acpi_pci_bridge_d3(struct pci_dev
> > > *dev)
> > > >         if (!dev->is_hotplug_bridge)
> > > >                 return false;
> > > >
> > > > +       /* Assume D3 support if the bridge is power-manageable by ACPI.
> */
> > > > +       adev = ACPI_COMPANION(&dev->dev);
> > > > +       if (!adev && !pci_dev_is_added(dev)) {
> > > > +               adev = acpi_pci_find_companion(&dev->dev);
> > > > +               ACPI_COMPANION_SET(&dev->dev, adev);
> > > > +       }
> > > > +
> > > > +       if (adev && acpi_device_power_manageable(adev))
> > > > +               return true;
> > > > +
> > > >         /*
> > > >          * Look for a special _DSD property for the root port and if it
> > > >          * is set we know the hierarchy behind it supports D3 just fine.
> > > > --
> > >
> > > I'm going to apply this patch for 5.10 unless Bjorn would rather
> > > route it through the PCI tree.
> >
> > Any chance we can get this into stable at some point as well?  It would be
> nice to fix the laptops out there in the wild running older kernels.
> 
> I can mark it for stable, but I'm not sure which releases it should go back to.

5.4 is the oldest kernel that supports the GPUs on this platform.

Alex

> 
> Thanks!




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux