+Cc: ACPI ML and Rafael On Fri, May 15, 2020 at 8:36 PM larsh@xxxxxxxxxx <larsh@xxxxxxxxxx> wrote: > > Hi. I hope this is the right forum to raise this... > > For a while I have noticed that my CPU (i9-9880H in a Lenovo X1 Extreme Gen2) never enters any sleep mode below pc2. > (Confirmed with powertop and /sys/kernel/debug/pmc_core/package_cstate_show) > > Interestingly the CPU *can* reachers deeper C states *after* a resume from sleep (either S0ix or S3, i.e. freeze or mem). > > This article finally pointed me in the right direction: https://01.org/blogs/qwang59/2020/linux-s0ix-troubleshooting > > Somehow SOUTHPORT_A is requesting a max latency of 1 us. > There are no external devices attached. > > This is before a resume: > > $ cat /sys/kernel/debug/pmc_core/ltr_show > SOUTHPORT_A LTR: RAW: 0x88018c01 Non-Snoop(ns): 1024 Snoop(ns): 32768 <------- > SOUTHPORT_B LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > SATA LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > GIGABIT_ETHERNET LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > XHCI LTR: RAW: 0x13ff Non-Snoop(ns): 0 Snoop(ns): 0 > Reserved LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > ME LTR: RAW: 0x8000800 Non-Snoop(ns): 0 Snoop(ns): 0 > EVA LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > SOUTHPORT_C LTR: RAW: 0x9f409f4 Non-Snoop(ns): 0 Snoop(ns): 0 > HD_AUDIO LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > CNV LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > LPSS LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > SOUTHPORT_D LTR: RAW: 0x8c548c54 Non-Snoop(ns): 2752512 Snoop(ns): 2752512 > SOUTHPORT_E LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > CAMERA LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > ESPI LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > SCC LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > ISH LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > UFSX2 LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > EMMC LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > WIGIG LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > CURRENT_PLATFORM LTR: RAW: 0x40201 Non-Snoop(ns): 0 Snoop(ns): 0 > AGGREGATED_SYSTEM LTR: RAW: 0x7fbfdfe Non-Snoop(ns): 0 Snoop(ns): 0 > > Notice the 1000ns max latency requirement for SOUTHPORT_A. > > Ignoring SOUTHPORT_A via /sys/kernel/debug/pmc_core/ltr_ignore subsequently allows the CPU to reach deep sleep states. > > After a resume it looks like suddenly SOUTHPORT_C is active and with a less tight latency requirement: > > $ cat /sys/kernel/debug/pmc_core/ltr_show > SOUTHPORT_A LTR: RAW: 0x8010c01 Non-Snoop(ns): 0 Snoop(ns): 0 <-------- > SOUTHPORT_B LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > SATA LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > GIGABIT_ETHERNET LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > XHCI LTR: RAW: 0x13ff Non-Snoop(ns): 0 Snoop(ns): 0 > Reserved LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > ME LTR: RAW: 0x8000800 Non-Snoop(ns): 0 Snoop(ns): 0 > EVA LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > SOUTHPORT_C LTR: RAW: 0x88468846 Non-Snoop(ns): 71680 Snoop(ns): 71680 <--------- > HD_AUDIO LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > CNV LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > LPSS LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > SOUTHPORT_D LTR: RAW: 0x8c548c54 Non-Snoop(ns): 2752512 Snoop(ns): 2752512 > SOUTHPORT_E LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > CAMERA LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > ESPI LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > SCC LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > ISH LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > UFSX2 LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > EMMC LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > WIGIG LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0 > CURRENT_PLATFORM LTR: RAW: 0x40201 Non-Snoop(ns): 0 Snoop(ns): 0 > AGGREGATED_SYSTEM LTR: RAW: 0x904824 Non-Snoop(ns): 0 Snoop(ns): 0 > > Does anybody know what's going on or how to debug this further? > > As stated above, I was able to work around this problem by ignoring SOUTHPORT_A via /sys/kernel/debug/pmc_core/ltr_ignore. > There has to be a better way, and I'm sure I'm not the only one running into this. > > Thanks. > > -- Lars -- With Best Regards, Andy Shevchenko