On Tue, 17 May 2022 14:42:56 -0600 Alex Williamson <alex.williamson@xxxxxxxxxx> wrote: > On Tue, 17 May 2022 15:32:19 +0530 > Abhishek Sahu <abhsahu@xxxxxxxxxx> wrote: > > 5. Since the runtime PM framework will provide the same functionality, > > so directly writing into PCI PM config register can be replaced with > > the use of runtime PM routines. Also, the use of runtime PM can help > > us in more power saving. > > > > In the systems which do not support D3cold, > > > > With the existing implementation: > > > > // PCI device > > # cat /sys/bus/pci/devices/0000\:01\:00.0/power_state > > D3hot > > // upstream bridge > > # cat /sys/bus/pci/devices/0000\:00\:01.0/power_state > > D0 > > > > With runtime PM: > > > > // PCI device > > # cat /sys/bus/pci/devices/0000\:01\:00.0/power_state > > D3hot > > // upstream bridge > > # cat /sys/bus/pci/devices/0000\:00\:01.0/power_state > > D3hot > > I'm not able to reproduce these results. Output below abridged: > > # lspci -t > -[0000:00]-+-00.0 > +-01.0-[01]--+-00.0 > | \-00.1 > > # grep . /sys/bus/pci/devices/*/power_state > /sys/bus/pci/devices/0000:00:01.0/power_state:D0 > /sys/bus/pci/devices/0000:01:00.0/power_state:D3hot > /sys/bus/pci/devices/0000:01:00.1/power_state:D3hot > > # lspci -ks $DEV > 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (rev 09) > Kernel driver in use: pcieport > 01:00.0 VGA compatible controller: NVIDIA Corporation GM107 [GeForce GTX 750] (rev a2) > Subsystem: eVga.com. Corp. Device 2753 > Kernel driver in use: vfio-pci > 01:00.1 Audio device: NVIDIA Corporation GM107 High Definition Audio Controller [GeForce 940MX] (rev a1) > Subsystem: eVga.com. Corp. Device 2753 > Kernel driver in use: vfio-pci > Kernel modules: snd_hda_intel > > Any debugging suggestions? Thanks, Nevermind, I see a whole bunch of reasons in pci_bridge_d3_possible() that runtime-pm wouldn't support D3hot on this bridge/system. Thanks, Alex