Bug 218461

Summary: ASUS Expertbook B5302F - no s0 residency in s2idle
Product: ACPI Reporter: Davor Virag (davor.virag)
Component: Power-Sleep-WakeAssignee: acpi_power-sleep-wake
Status: NEW ---    
Severity: high CC: davor.virag, lenb, linux-acpi, rafael, tiwai
Priority: P3    
Hardware: Intel   
OS: Linux   
Kernel Version: 6.10.2 Subsystem:
Regression: No Bisected commit-id:
Attachments: output of `s0ix-selftest-tool.sh -s`
/proc/config.gz
output of `lspci -vvv`
output of `awk -f scripts/ver_linux`
/proc/cpuinfo
/proc/ioports
/proc/iomem
/proc/modules
output of `dmesg` after boot
output of `dmesg` after boot
additional output of `dmesg` after running `s0ix-selftest-tool.sh -s`
Output of `dmesg` after S3 sleep and S0 self-test

Description Davor Virag 2024-02-05 16:20:47 UTC
Created attachment 305826 [details]
output of `s0ix-selftest-tool.sh -s`

I'm using Intel's S0ixSelftestTool (https://github.com/intel/S0ixSelftestTool/) as I was getting seemingly high battery drain in sleep. I've had this happen on Arch, Mint, Fedora (with the distros' kernels) and I'm currently running OpenSUSE with vanilla kernel 6.7.3. I've set the severity to high as a feature that I need for day-to-day use is broken.
According to the logs, the self-test can get the CPU into PC10 state, but the logs state:

"Your system supports S0ix substates, but did not achieve the shallowest s0i2.0"

Reproducible: Always

Steps to Reproduce:
1. Run `s0ix-selftest-tool.sh -s`
2. Check for s0 residency

Actual Results:  
CPU Core C7 residency after S2idle is: 97.26
GFX RC6 residency after S2idle is: 
CPU Package C-state 2 residency after S2idle is: 4.02
CPU Package C-state 3 residency after S2idle is: 1.50
CPU Package C-state 8 residency after S2idle is: 0.43
CPU Package C-state 9 residency after S2idle is: 1.37
CPU Package C-state 10 residency after S2idle is: 84.44
S0ix residency after S2idle is: 0.00

Your system supports S0ix substates, but did not achieve the shallowest s0i2.0
    
Here is the S0ix substates status: 
Substate   Residency      
S0i2.0     0              
S0i3.0     0      

(...)

Did not detect the potential blockers from substate_requirements,     
need to check substate_status_registers file for the advanced debug.

(...)

Your system south port controller power gating state is OK after 30 seconds runtime check.

Expected Results:  
Residency in one of the s0 states

Attachments:
- output of `s0ix-selftest-tool.sh -s`
- /proc/config.gz
- output of `lspci -vvv`
- output of `awk -f scripts/ver_linux`
- /proc/cpuinfo
- /proc/ioports
- /proc/iomem
- /proc/modules
- output of `dmesg` after boot
- additional output of `dmesg` after running `s0ix-selftest-tool.sh -s`
Comment 1 Davor Virag 2024-02-05 16:21:26 UTC
Created attachment 305827 [details]
/proc/config.gz
Comment 2 Davor Virag 2024-02-05 16:21:45 UTC
Created attachment 305828 [details]
output of `lspci -vvv`
Comment 3 Davor Virag 2024-02-05 16:22:05 UTC
Created attachment 305829 [details]
output of `awk -f scripts/ver_linux`
Comment 4 Davor Virag 2024-02-05 16:22:21 UTC
Created attachment 305830 [details]
/proc/cpuinfo
Comment 5 Davor Virag 2024-02-05 16:22:37 UTC
Created attachment 305831 [details]
/proc/ioports
Comment 6 Davor Virag 2024-02-05 16:22:57 UTC
Created attachment 305832 [details]
/proc/iomem
Comment 7 Davor Virag 2024-02-05 16:23:13 UTC
Created attachment 305833 [details]
/proc/modules
Comment 8 Davor Virag 2024-02-05 16:24:27 UTC
Created attachment 305834 [details]
output of `dmesg` after boot
Comment 9 Davor Virag 2024-02-05 16:25:47 UTC
Created attachment 305835 [details]
output of `dmesg` after boot
Comment 10 Davor Virag 2024-02-05 16:26:08 UTC
Created attachment 305836 [details]
additional output of `dmesg` after running `s0ix-selftest-tool.sh -s`
Comment 11 Davor Virag 2024-02-08 19:34:25 UTC
Interestingly, after initiating S3 sleep and waking up, rerunning the self-test shows I'm getting S0i2.0 at least (if not S0i3.0):

S0ix substates residency delta value: S0i2.0 13343658

S0ix substates residency delta value: S0i3.0 0

Your system only get shallower S0ix substate residency: S0i2.0 13343658

So something about performing S3 sleep and wake makes S0i2.0 start working. It might be the Intel ISH, as this is erroring in dmesg and preventing the deeper S0 state (S0i3.0). After performing S3 sleep, the Fn key freezes state and the volume, brightness etc. F-keys stop working. I suppose ISH is in charge of that. I'll attach the dmesg taken after performing all of this:

1. S0 self-test which shows no S0 residency, followed by
2. S3 sleep which breaks F-keys, followed by
3. S0 self-test, which shows S0i2.0, but not S0i3.0 residency (F-keys still broken, of course, until I reboot).
Comment 12 Davor Virag 2024-02-08 19:35:17 UTC
Created attachment 305850 [details]
Output of `dmesg` after S3 sleep and S0 self-test
Comment 13 Davor Virag 2024-08-05 13:26:52 UTC
This still happens on kernel version 6.10.2, and blacklisting intel_ish_ipc doesn't change anything (and it doesn't seem to be responsible for the Fn keys as they still work).