On Mon, 2020-07-27 at 09:14 -0500, Bjorn Helgaas wrote: > I don't know the connection between ASPM and package C-states, so I > need to simplify this even more. All I want to do right now is > verify > that if we don't have any outside influences on the ASPM > configuration > (eg, no manual changes and no udev rules), it stays the same across > suspend/resume. Basically this started from me observing deep package C-states weren't being used, until I went and fiddled with the ASPM state of the rtsx_pci card reader under sysfs -- so phenomenological poking on my part. > So let's read the ASPM state directly from the > hardware like this: > > sudo lspci -vvs 00:1d.0 | egrep "^0|Lnk|L1|LTR|snoop" > sudo lspci -vvs 01:00 | egrep "^0|Lnk|L1|LTR|snoop" > > Can you try that before and after suspend/resume? I've attached these to the bugzilla entry at: https://bugzilla.kernel.org/show_bug.cgi?id=208117 Spoiler: With no udev rules or suspend hooks, things are the same before and after suspend/resume. One thing I do see (both before and after) is that ASPM L0s and L1 is enabled for the card reader, but disabled for the ethernet chip (does r8169 fiddle with ASPM too?). [Oddly when I set ASPM (e.g. using udev) the lspci tools show ASPM enabled after a suspend/resume, but still no deep package C-states until I manually fiddle via sysfs on the card reader. Sorry if this only muddies the water further!] Thanks, -James