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, Alex