Open kitakar5525 opened 5 years ago
Suspend status script
# Get CPU model (script from neofetch)
awk -F '\\s*: | @' \
'/model name|Hardware|Processor|^cpu model|chip type|^cpu type/ {
cpu=$2; if ($1 == "Hardware") exit } END { print cpu }' "/proc/cpuinfo"; \
\
cat /etc/os-release | grep NAME; \
echo -n "uname -r: "; uname -r; \
sudo grep -H . /sys/devices/virtual/dmi/id/product_name; \
sudo grep -H . /sys/devices/virtual/dmi/id/product_sku; \
sudo grep -H . /sys/devices/system/cpu/cpuidle/low_power_idle_cpu_residency_us; \
sudo grep -H . /sys/devices/system/cpu/cpuidle/low_power_idle_system_residency_us; \
sudo grep -H . /sys/kernel/debug/pmc_core/package_cstate_show; \
sudo grep -H . /sys/kernel/debug/pmc_core/slp_s0_residency_usec; \
sudo grep -H . /sys/kernel/debug/pmc_atom/sleep_state; \
sudo grep -H . /sys/kernel/debug/telemetry/s0ix_residency_usec
Enable some debug output
sudo su -c "echo 1 > /sys/power/pm_debug_messages"
sudo su -c "echo 1 > /sys/module/printk/parameters/ignore_loglevel"
sudo su -c "echo 1 > /sys/kernel/debug/clear_warn_once"
sudo su -c "echo 1 > /sys/module/acpi/parameters/aml_debug_output"
# dynamic_debug
sudo su -c 'echo "file drivers/pci/pci-acpi.c +p" > /sys/kernel/debug/dynamic_debug/control'
sudo su -c 'echo "file drivers/pci/pci-driver.c +p" > /sys/kernel/debug/dynamic_debug/control'
sudo su -c 'echo "file drivers/acpi/sleep.c +p" > /sys/kernel/debug/dynamic_debug/control'
sudo su -c 'echo "file drivers/platform/x86/intel_pmc_core.c +p" > /sys/kernel/debug/dynamic_debug/control'
sudo su -c 'echo "file drivers/base/power/wakeup.c +p" > /sys/kernel/debug/dynamic_debug/control'
sudo su -c 'echo "file drivers/acpi/device_pm.c +p" > /sys/kernel/debug/dynamic_debug/control'
Currently, I don't reload any modules in system-sleep/sleep script. Removing mwifiex modules will block PC10 state. The contents:
#!/bin/sh
PATH_CPULPI_US=/sys/devices/system/cpu/cpuidle/low_power_idle_cpu_residency_us
PATH_SLPS0_US=/sys/kernel/debug/pmc_core/slp_s0_residency_usec
case $1/$2 in
pre/*)
echo "pre-suspend state" > /dev/kmsg
echo "$(basename $PATH_CPULPI_US): $(cat $PATH_CPULPI_US) usec" > /dev/kmsg
echo "$(basename $PATH_SLPS0_US): $(cat $PATH_SLPS0_US) usec" > /dev/kmsg
;;
post/*)
echo "post-suspend state" > /dev/kmsg
echo "$(basename $PATH_CPULPI_US): $(cat $PATH_CPULPI_US) usec" > /dev/kmsg
echo "$(basename $PATH_SLPS0_US): $(cat $PATH_SLPS0_US) usec" > /dev/kmsg
systemctl restart usbguard.service
;;
esac
After about 10 sec suspend:
Intel(R) Core(TM) i7-6600U CPU
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
uname -r: 5.2.9-arch1-1-surface
/sys/devices/virtual/dmi/id/product_name:Surface Book
/sys/devices/virtual/dmi/id/product_sku:Surface_Book
/sys/devices/system/cpu/cpuidle/low_power_idle_cpu_residency_us:21353923
grep: /sys/devices/system/cpu/cpuidle/low_power_idle_system_residency_us: No such file or directory
/sys/kernel/debug/pmc_core/package_cstate_show:Package C2 : 0x6bcdd0a824
/sys/kernel/debug/pmc_core/package_cstate_show:Package C3 : 0x5fb997c7c
/sys/kernel/debug/pmc_core/package_cstate_show:Package C6 : 0x5c6af736f4
/sys/kernel/debug/pmc_core/package_cstate_show:Package C7 : 0x1eb3ef0
/sys/kernel/debug/pmc_core/package_cstate_show:Package C8 : 0xe3f2d9f80
/sys/kernel/debug/pmc_core/package_cstate_show:Package C9 : 0xe516188
/sys/kernel/debug/pmc_core/package_cstate_show:Package C10 : 0xdf600bc70
/sys/kernel/debug/pmc_core/slp_s0_residency_usec:0
grep: /sys/kernel/debug/pmc_atom/sleep_state: No such file or directory
BTW, I can achieve PC10 on even runtime by reloading mwifiex modules and reconfiguring ASPM on wifi device [1] twice, that's why low_power_idle_cpu_residency_us
(PC10 residency) is larger than 10 sec.
References
Status of /sys/kernel/debug/pmc_core/
$ cd /sys/kernel/debug/pmc_core/
$ grep -H . *
ltr_show:SOUTHPORT_A LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:SOUTHPORT_B LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:SATA LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:GIGABIT_ETHERNET LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:XHCI LTR: RAW: 0x8828 Non-Snoop(ns): 0 Snoop(ns): 40960
ltr_show:Reserved LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:ME LTR: RAW: 0xc000c00 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:EVA LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:SOUTHPORT_C LTR: RAW: 0x88a088a0 Non-Snoop(ns): 163840 Snoop(ns): 163840
ltr_show:HD_AUDIO LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:LPSS LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:SOUTHPORT_D LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:SOUTHPORT_E LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:CAMERA LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:ESPI LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:SCC LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:ISH LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:CURRENT_PLATFORM LTR: RAW: 0x40201 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:AGGREGATED_SYSTEM LTR: RAW: 0x1442a15 Non-Snoop(ns): 0 Snoop(ns): 0
mphy_core_lanes_power_gating_status:MPHY CORE LANE 0 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 1 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 2 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 3 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 4 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 5 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 6 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 7 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 8 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 9 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 10 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 11 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 12 State: Not power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 13 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 14 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 15 State: Power gated
package_cstate_show:Package C2 : 0x1343d47e0c4
package_cstate_show:Package C3 : 0xb6c236520
package_cstate_show:Package C6 : 0x11909781b88
package_cstate_show:Package C7 : 0x43e3d68
package_cstate_show:Package C8 : 0x2367863c7c
package_cstate_show:Package C9 : 0x2671bd1310
package_cstate_show:Package C10 : 0xdf600bc70
pch_ip_power_gating_status:PCH IP: 0 - PMC State: On
pch_ip_power_gating_status:PCH IP: 1 - OPI-DMI State: On
pch_ip_power_gating_status:PCH IP: 2 - SPI / eSPI State: On
pch_ip_power_gating_status:PCH IP: 3 - XHCI State: On
pch_ip_power_gating_status:PCH IP: 4 - SPA State: Off
pch_ip_power_gating_status:PCH IP: 5 - SPB State: Off
pch_ip_power_gating_status:PCH IP: 6 - SPC State: On
pch_ip_power_gating_status:PCH IP: 7 - GBE State: Off
pch_ip_power_gating_status:PCH IP: 8 - SATA State: Off
pch_ip_power_gating_status:PCH IP: 9 - HDA-PGD0 State: Off
pch_ip_power_gating_status:PCH IP: 10 - HDA-PGD1 State: Off
pch_ip_power_gating_status:PCH IP: 11 - HDA-PGD2 State: Off
pch_ip_power_gating_status:PCH IP: 12 - HDA-PGD3 State: Off
pch_ip_power_gating_status:PCH IP: 13 - RSVD State: Off
pch_ip_power_gating_status:PCH IP: 14 - LPSS State: Off
pch_ip_power_gating_status:PCH IP: 15 - LPC State: Off
pch_ip_power_gating_status:PCH IP: 16 - SMB State: Off
pch_ip_power_gating_status:PCH IP: 17 - ISH State: Off
pch_ip_power_gating_status:PCH IP: 18 - P2SB State: Off
pch_ip_power_gating_status:PCH IP: 19 - DFX State: Off
pch_ip_power_gating_status:PCH IP: 20 - SCC State: Off
pch_ip_power_gating_status:PCH IP: 21 - RSVD State: Off
pch_ip_power_gating_status:PCH IP: 22 - FUSE State: On
pch_ip_power_gating_status:PCH IP: 23 - CAMERA State: Off
pch_ip_power_gating_status:PCH IP: 24 - RSVD State: Off
pch_ip_power_gating_status:PCH IP: 25 - USB3-OTG State: Off
pch_ip_power_gating_status:PCH IP: 26 - EXI State: Off
pch_ip_power_gating_status:PCH IP: 27 - CSE State: Off
pch_ip_power_gating_status:PCH IP: 28 - CSME_KVM State: Off
pch_ip_power_gating_status:PCH IP: 29 - CSME_PMT State: Off
pch_ip_power_gating_status:PCH IP: 30 - CSME_CLINK State: Off
pch_ip_power_gating_status:PCH IP: 31 - CSME_PTIO State: Off
pch_ip_power_gating_status:PCH IP: 32 - CSME_USBR State: Off
pch_ip_power_gating_status:PCH IP: 33 - CSME_SUSRAM State: Off
pch_ip_power_gating_status:PCH IP: 34 - CSME_SMT State: Off
pch_ip_power_gating_status:PCH IP: 35 - RSVD State: Off
pch_ip_power_gating_status:PCH IP: 36 - CSME_SMS2 State: Off
pch_ip_power_gating_status:PCH IP: 37 - CSME_SMS1 State: Off
pch_ip_power_gating_status:PCH IP: 38 - CSME_RTC State: Off
pch_ip_power_gating_status:PCH IP: 39 - CSME_PSF State: Off
pll_status:MIPI PLL State: Idle
pll_status:GEN2 USB2PCIE2 PLL State: Active
pll_status:DMIPCIE3 PLL State: Active
pll_status:SATA PLL State: Idle
slp_s0_residency_usec:0
lspci -nnvt
:
-[0000:00]-+-00.0 Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers [8086:1904]
+-02.0 Intel Corporation Skylake GT2 [HD Graphics 520] [8086:1916]
+-05.0 Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Imaging Unit [8086:1919]
+-08.0 Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model [8086:1911]
+-14.0 Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller [8086:9d2f]
+-14.2 Intel Corporation Sunrise Point-LP Thermal subsystem [8086:9d31]
+-14.3 Intel Corporation Device [8086:9d32]
+-15.0 Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 [8086:9d60]
+-15.1 Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 [8086:9d61]
+-15.2 Intel Corporation Sunrise Point-LP Serial IO I2C Controller #2 [8086:9d62]
+-15.3 Intel Corporation Sunrise Point-LP Serial IO I2C Controller #3 [8086:9d63]
+-16.0 Intel Corporation Sunrise Point-LP CSME HECI #1 [8086:9d3a]
+-16.4 Intel Corporation Device [8086:9d3e]
+-1c.0-[01]--
+-1d.0-[02]----00.0 Toshiba America Info Systems NVMe Controller [1179:010f]
+-1d.3-[03]----00.0 Marvell Technology Group Ltd. 88W8897 [AVASTAR] 802.11ac Wireless [11ab:2b38]
+-1f.0 Intel Corporation Sunrise Point-LP LPC Controller [8086:9d48]
+-1f.2 Intel Corporation Sunrise Point-LP PMC [8086:9d21]
\-1f.3 Intel Corporation Sunrise Point-LP HD Audio [8086:9d70]
```
00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers [8086:1904] (rev 08)
Subsystem: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers [8086:2015]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
Decompiled DSDT for SB1 available at note-linux-on-surface-book-1/dsdt.dsl at master · kitakar5525/note-linux-on-surface-book-1
dmesg suspend log
```
kern :notice: [ 0.000000] Linux version 5.2.9-arch1-1-surface (kitakar5525@ip-172-31-31-65) (gcc version 9.1.0 (GCC)) #1 SMP PREEMPT Sun Aug 18 01:11:14 JST 2019
kern :info : [ 0.000000] Command line: \\vmlinuz-linux-surface initrd=/intel-ucode.img initrd=/initramfs-linux-surface.img root=LABEL=Arch_Linux rw resume=LABEL=Arch_Linux resume_offset=395264 quiet fbcon=scrollback:4096k log_buf_len=16M
[...]
kern :info : [ 59.708705] DEBUG: ipts_send_sensor_quiesce_io_cmd called
user :warn : [ 61.005797] pre-suspend state
user :warn : [ 61.008037] low_power_idle_cpu_residency_us: 72703 usec
user :warn : [ 61.009854] slp_s0_residency_usec: 0 usec
kern :info : [ 61.010440] PM: suspend entry (s2idle)
kern :info : [ 61.024118] Filesystems sync: 0.013 seconds
kern :debug : [ 61.024121] PM: Preparing system for sleep (s2idle)
kern :info : [ 61.025233] Freezing user space processes ... (elapsed 0.002 seconds) done.
kern :info : [ 61.027323] OOM killer disabled.
kern :info : [ 61.027324] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
kern :debug : [ 61.028615] PM: Suspending system (s2idle)
kern :info : [ 61.028616] printk: Suspending console(s) (use no_console_suspend to debug)
kern :debug : [ 61.131662] snd_hda_intel 0000:00:1f.3: power state changed by ACPI to D0
kern :debug : [ 61.131672] intel-lpss 0000:00:15.0: power state changed by ACPI to D0
kern :info : [ 61.133149] mwifiex_pcie 0000:03:00.0: info: successfully disconnected from [BSSID]: reason code 3
kern :info : [ 61.135679] mwifiex_pcie 0000:03:00.0: None of the WOWLAN triggers enabled
kern :debug : [ 61.147290] snd_hda_intel 0000:00:1f.3: Wakeup disabled by ACPI
kern :info : [ 61.253688] DEBUG: ipts_mei_cl_remove called
kern :info : [ 61.253691] DEBUG: ipts_stop called
kern :info : [ 61.253692] DEBUG: ipts_send_sensor_quiesce_io_cmd called
kern :err : [ 61.253701] ipts mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0F: mei_cldev_send() error 0x4:-19
kern :info : [ 61.253703] DEBUG: ipts_send_sensor_clear_mem_window_cmd called
kern :err : [ 61.253706] ipts mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0F: mei_cldev_send() error 0x7:-19
kern :err : [ 61.259050] ipts mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0F: error in reading m2h msg
kern :info : [ 61.259073] IPTS removed
kern :info : [ 61.303479] DEBUG: Passed nvme_suspend 2897, (pm_suspend_via_firmware() || !ctrl->npss)==false
kern :info : [ 61.303483] DEBUG: nvme_suspend(): using host managed power settings
kern :debug : [ 61.306543] intel-lpss 0000:00:15.3: power state changed by ACPI to D0
kern :debug : [ 61.308283] intel-lpss 0000:00:15.2: power state changed by ACPI to D0
kern :debug : [ 61.309601] intel-lpss 0000:00:15.1: power state changed by ACPI to D0
kern :debug : [ 61.417280] PM: suspend of devices complete after 286.469 msecs
kern :debug : [ 61.434539] PM: late suspend of devices complete after 17.258 msecs
kern :debug : [ 61.434716] ACPI: \_SB_.PEPD: _DSM function 3 evaluation successful
kern :warn : [ 61.435289] ACPI Debug: "Enter Resiliency"
kern :debug : [ 61.436958] ACPI: \_SB_.PEPD: _DSM function 5 evaluation successful
kern :debug : [ 61.437020] PM: suspend-to-idle
kern :debug : [ 61.440457] nvme 0000:02:00.0: PCI PM: Suspend power state: D0
kern :debug : [ 61.440462] nvme 0000:02:00.0: PCI PM: Skipped
kern :debug : [ 61.440724] pcieport 0000:00:1d.0: PCI PM: Suspend power state: D0
kern :debug : [ 61.440728] pcieport 0000:00:1d.0: PCI PM: Skipped
kern :debug : [ 61.440870] pcieport 0000:00:1c.0: PCI PM: Suspend power state: D0
kern :debug : [ 61.440873] pcieport 0000:00:1c.0: PCI PM: Skipped
kern :debug : [ 61.453525] mei_me 0000:00:16.4: PCI PM: Suspend power state: D3hot
kern :debug : [ 61.453887] snd_hda_intel 0000:00:1f.3: power state changed by ACPI to D3hot
kern :debug : [ 61.453917] snd_hda_intel 0000:00:1f.3: PCI PM: Suspend power state: D3hot
kern :debug : [ 61.453934] i915 0000:00:02.0: PCI PM: Suspend power state: D3hot
kern :debug : [ 61.456858] intel_pch_thermal 0000:00:14.2: PCI PM: Suspend power state: D3hot
kern :debug : [ 61.456860] mei_me 0000:00:16.0: PCI PM: Suspend power state: D3hot
kern :debug : [ 61.457793] mwifiex_pcie 0000:03:00.0: power state changed by ACPI to D3hot
kern :debug : [ 61.458190] intel-lpss 0000:00:15.3: power state changed by ACPI to D3cold
kern :debug : [ 61.458755] mwifiex_pcie 0000:03:00.0: PCI PM: Suspend power state: D3hot
kern :debug : [ 61.459578] intel-lpss 0000:00:15.0: power state changed by ACPI to D3cold
kern :debug : [ 61.460652] intel-lpss 0000:00:15.3: PCI PM: Suspend power state: D3hot
kern :debug : [ 61.461083] intel-lpss 0000:00:15.1: power state changed by ACPI to D3cold
kern :debug : [ 61.461418] intel-lpss 0000:00:15.0: PCI PM: Suspend power state: D3hot
kern :debug : [ 61.461506] intel-lpss 0000:00:15.2: power state changed by ACPI to D3cold
kern :debug : [ 61.461717] intel-lpss 0000:00:15.1: PCI PM: Suspend power state: D3hot
kern :debug : [ 61.461802] intel-lpss 0000:00:15.2: PCI PM: Suspend power state: D3hot
kern :debug : [ 61.476960] xhci_hcd 0000:00:14.0: power state changed by ACPI to D3hot
kern :debug : [ 61.476984] xhci_hcd 0000:00:14.0: PCI PM: Suspend power state: D3hot
kern :debug : [ 61.520276] pcieport 0000:00:1d.3: power state changed by ACPI to D3hot
kern :debug : [ 61.520495] pcieport 0000:00:1d.3: PCI PM: Suspend power state: D3hot
kern :debug : [ 61.520521] PM: noirq suspend of devices complete after 83.342 msecs
kern :debug : [ 70.836033] PM: Timekeeping suspended for 8.547 seconds
kern :debug : [ 70.836050] TSC deadline timer enabled
kern :debug : [ 70.836184] ACPI: \_PR_.PR00: LPI: required min power state:D0 current power state:D0
kern :info : [ 70.836189] ACPI: \_PR_.PR00: LPI: Device not power manageable
kern :debug : [ 70.836193] ACPI: \_PR_.PR01: LPI: required min power state:D0 current power state:D0
kern :info : [ 70.836196] ACPI: \_PR_.PR01: LPI: Device not power manageable
kern :debug : [ 70.836200] ACPI: \_PR_.PR02: LPI: required min power state:D0 current power state:D0
kern :info : [ 70.836202] ACPI: \_PR_.PR02: LPI: Device not power manageable
kern :debug : [ 70.836205] ACPI: \_PR_.PR03: LPI: required min power state:D0 current power state:D0
kern :info : [ 70.836207] ACPI: \_PR_.PR03: LPI: Device not power manageable
kern :debug : [ 70.836211] ACPI: \_SB_.PCI0.GFX0: LPI: required min power state:D3hot current power state:D0
kern :info : [ 70.836214] ACPI: \_SB_.PCI0.GFX0: LPI: Device not power manageable
kern :debug : [ 70.836218] ACPI: \_SB_.PCI0.I2C0: LPI: required min power state:D3hot current power state:D3hot
kern :debug : [ 70.836222] ACPI: \_SB_.PCI0.XHC_: LPI: required min power state:D3hot current power state:D3hot
kern :debug : [ 70.836225] ACPI: \_SB_.PCI0.HDAS: LPI: required min power state:D3hot current power state:D3hot
kern :debug : [ 70.836229] ACPI: \_SB_.PCI0.RP05: LPI: required min power state:D0 current power state:D0
kern :debug : [ 70.836233] ACPI: \_SB_.PCI0.RP09.PXSX: LPI: required min power state:D0 current power state:D3cold
kern :debug : [ 70.836237] ACPI: \_SB_.PCI0.RP12.PXSX: LPI: required min power state:D3hot current power state:D3hot
kern :debug : [ 70.836241] ACPI: \_SB_.PCI0.ISP0: LPI: required min power state:D3hot current power state:D0
kern :info : [ 70.836243] ACPI: \_SB_.PCI0.ISP0: LPI: Device not power manageable
kern :debug : [ 70.836247] ACPI: \_SB_.PCI0.HECI: LPI: required min power state:D0 current power state:D0
kern :info : [ 70.836249] ACPI: \_SB_.PCI0.HECI: LPI: Device not power manageable
kern :debug : [ 70.839183] intel-lpss 0000:00:15.0: power state changed by ACPI to D0
kern :debug : [ 70.839745] intel-lpss 0000:00:15.1: power state changed by ACPI to D0
kern :debug : [ 70.839996] intel-lpss 0000:00:15.2: power state changed by ACPI to D0
kern :debug : [ 70.840121] intel-lpss 0000:00:15.3: power state changed by ACPI to D0
kern :warn : [ 70.842285] ACPI Debug: "Power button pressed"
kern :debug : [ 70.852326] xhci_hcd 0000:00:14.0: power state changed by ACPI to D0
kern :debug : [ 70.852734] snd_hda_intel 0000:00:1f.3: power state changed by ACPI to D0
kern :debug : [ 71.002156] pcieport 0000:00:1d.3: power state changed by ACPI to D0
kern :debug : [ 71.018998] mwifiex_pcie 0000:03:00.0: power state changed by ACPI to D0
kern :info : [ 71.035363] mwifiex_pcie 0000:03:00.0: Refused to change power state, currently in D3
kern :debug : [ 71.044212] PM: noirq resume of devices complete after 208.070 msecs
kern :warn : [ 71.048768] ACPI Debug: "Power button released"
kern :debug : [ 71.048793] PM: resume from suspend-to-idle
kern :warn : [ 71.049005] ACPI Debug: "Exit Resiliency"
kern :warn : [ 71.049022] ACPI Debug: "Exit CS"
kern :debug : [ 71.106421] ACPI: \_SB_.PEPD: _DSM function 6 evaluation successful
kern :debug : [ 71.106483] ACPI: \_SB_.PEPD: _DSM function 4 evaluation successful
kern :warn : [ 71.107533] ACPI Debug: "SAM wake up interrupt sent"
kern :debug : [ 71.108534] PM: early resume of devices complete after 2.047 msecs
kern :alert : [ 71.109019] mwifiex_pcie: DEBUG: putting into D0...
kern :debug : [ 71.109040] mwifiex_pcie 0000:03:00.0: power state changed by ACPI to D0
kern :info : [ 71.109802] [drm] HuC: Loaded firmware i915/skl_huc_ver01_07_1398.bin (version 1.7)
kern :info : [ 71.114525] [drm] GuC: Loaded firmware i915/skl_guc_ver9_33.bin (version 9.33)
kern :info : [ 71.114659] i915 0000:00:02.0: GuC firmware version 9.33
kern :info : [ 71.114661] i915 0000:00:02.0: GuC submission enabled
kern :info : [ 71.114662] i915 0000:00:02.0: HuC enabled
kern :warn : [ 71.118277] ACPI Debug: "Primary internal battery is available"
kern :warn : [ 71.131348] ACPI Debug: "Primary external battery is available"
kern :warn : [ 71.132230] acpi device:44: Cannot transition to power state D0 for parent in D3hot
kern :info : [ 71.133093] DEBUG: Passed nvme_resume 2868
kern :debug : [ 71.201093] PM: resume of devices complete after 92.622 msecs
kern :debug : [ 71.201545] PM: Finishing wakeup.
kern :info : [ 71.201547] OOM killer enabled.
kern :info : [ 71.201548] Restarting tasks ... done.
kern :warn : [ 71.217581] ACPI Debug: "ext bat temp returned"
kern :warn : [ 71.219601] ACPI Debug: "Primary internal battery _BIX called"
kern :info : [ 71.225919] probing Intel Precise Touch & Stylus
kern :info : [ 71.225923] IPTS using DMA_BIT_MASK(64)
kern :info : [ 71.228450] DEBUG: ipts_start called
kern :debug : [ 71.228480] intel-lpss 0000:00:15.2: power state changed by ACPI to D3cold
kern :debug : [ 71.229492] intel-lpss 0000:00:15.3: power state changed by ACPI to D3cold
kern :debug : [ 71.230214] intel-lpss 0000:00:15.1: power state changed by ACPI to D3cold
kern :info : [ 71.234997] input: ipts 1B96:005E UNKNOWN as /devices/pci0000:00/0000:00:16.4/mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0F/0044:1B96:005E.0004/input/input50
kern :info : [ 71.235164] input: ipts 1B96:005E as /devices/pci0000:00/0000:00:16.4/mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0F/0044:1B96:005E.0004/input/input52
kern :info : [ 71.235431] input: ipts 1B96:005E Touchscreen as /devices/pci0000:00/0000:00:16.4/mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0F/0044:1B96:005E.0004/input/input53
kern :info : [ 71.235583] input: ipts 1B96:005E Mouse as /devices/pci0000:00/0000:00:16.4/mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0F/0044:1B96:005E.0004/input/input54
kern :info : [ 71.235703] input: ipts 1B96:005E UNKNOWN as /devices/pci0000:00/0000:00:16.4/mei::3e8d0870-271a-4208-8eb5-9acb9402ae04:0F/0044:1B96:005E.0004/input/input57
kern :info : [ 71.235784] hid-multitouch 0044:1B96:005E.0004: input,hidraw0:
with color (html format, rename it to .html) 2019-08-18-dmesg-suspend-log-excerpt.html.txt
DEBUG:
lines with alert log level are my modification. Of course S0ix is not working even without the modifications.
Suspicious output:
kern :warn : [ 71.132230] acpi device:44: Cannot transition to power state D0 for parent in D3hot
device:44
is \_SB_.PCI0.RP09.PXSX
(NVMe)
$ cat /sys/bus/acpi/devices/device:44/path
\_SB_.PCI0.RP09.PXSX
I understand parent
is PCI bridge 00:1d.0
. However, it's in D0 on suspend
kern :debug : [ 61.440724] pcieport 0000:00:1d.0: PCI PM: Suspend power state: D0
kern :debug : [ 61.440728] pcieport 0000:00:1d.0: PCI PM: Skipped
I think it's weird.
Progress on another devices
Intel Atom S0ix debugging patch (old)
@StollD and @qzed Can you please provide
Thank you for your cooperation!
- lspci -nnvt
-[0000:00]-+-00.0 Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [8086:5904]
+-02.0 Intel Corporation HD Graphics 620 [8086:5916]
+-04.0 Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem [8086:1903]
+-05.0 Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Imaging Unit [8086:1919]
+-13.0 Intel Corporation Sunrise Point-LP Integrated Sensor Hub [8086:9d35]
+-14.0 Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller [8086:9d2f]
+-14.2 Intel Corporation Sunrise Point-LP Thermal subsystem [8086:9d31]
+-14.3 Intel Corporation Device [8086:9d32]
+-15.0 Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 [8086:9d60]
+-15.1 Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 [8086:9d61]
+-15.2 Intel Corporation Sunrise Point-LP Serial IO I2C Controller #2 [8086:9d62]
+-15.3 Intel Corporation Sunrise Point-LP Serial IO I2C Controller #3 [8086:9d63]
+-16.0 Intel Corporation Sunrise Point-LP CSME HECI #1 [8086:9d3a]
+-16.4 Intel Corporation Device [8086:9d3e]
+-1c.0-[01]----00.0 Marvell Technology Group Ltd. 88W8897 [AVASTAR] 802.11ac Wireless [11ab:2b38]
+-1c.4-[02]--
+-1d.0-[03]----00.0 Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961 [144d:a804]
+-1e.0 Intel Corporation Sunrise Point-LP Serial IO UART Controller #0 [8086:9d27]
+-1f.0 Intel Corporation Sunrise Point LPC Controller/eSPI Controller [8086:9d4e]
+-1f.2 Intel Corporation Sunrise Point-LP PMC [8086:9d21]
+-1f.3 Intel Corporation Sunrise Point-LP HD Audio [8086:9d71]
\-1f.4 Intel Corporation Sunrise Point-LP SMBus [8086:9d23]
- sudo lspci -nnvvv
00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [8086:5904] (rev 02)
Subsystem: Intel Corporation Device [8086:2015]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
Latency: 0
Capabilities: [e0] Vendor Specific Information: Len=10 <?>
Kernel driver in use: skl_uncore
00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 620 [8086:5916] (rev 02) (prog-if 00 [VGA controller])
Subsystem: Microsoft Corporation Device [1414:0027]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 127
Region 0: Memory at c0000000 (64-bit, non-prefetchable) [size=16M]
Region 2: Memory at b0000000 (64-bit, prefetchable) [size=256M]
Region 4: I/O ports at 1000 [size=64]
[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [40] Vendor Specific Information: Len=0c <?>
Capabilities: [70] Express (v2) Root Complex Integrated Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0
ExtTag- RBE+
DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
AtomicOpsCap: 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
AtomicOpsCtl: ReqEn-
Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee00018 Data: 0000
Capabilities: [d0] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [100 v1] Process Address Space ID (PASID)
PASIDCap: Exec- Priv-, Max PASID Width: 14
PASIDCtl: Enable- Exec- Priv-
Capabilities: [200 v1] Address Translation Service (ATS)
ATSCap: Invalidate Queue Depth: 00
ATSCtl: Enable-, Smallest Translation Unit: 00
Capabilities: [300 v1] Page Request Interface (PRI)
PRICtl: Enable- Reset-
PRISta: RF- UPRGI- Stopped+
Page Request Capacity: 00008000, Page Request Allocation: 00000000
Kernel driver in use: i915
Kernel modules: i915
00:04.0 Signal processing controller [1180]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem [8086:1903] (rev 02)
Subsystem: Intel Corporation Device [8086:2015]
Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 16
Region 0: Memory at c2730000 (64-bit, non-prefetchable) [size=32K]
Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit-
Address: 00000000 Data: 0000
Capabilities: [d0] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [e0] Vendor Specific Information: Len=0c <?>
Kernel driver in use: proc_thermal
Kernel modules: processor_thermal_device
00:05.0 Multimedia controller [0480]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Imaging Unit [8086:1919] (rev 01)
Subsystem: Intel Corporation Device [8086:2015]
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 255
Region 0: Memory at c2000000 (64-bit, non-prefetchable) [disabled] [size=4M]
Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [a0] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Capabilities: [d0] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
00:13.0 Non-VGA unclassified device [0000]: Intel Corporation Sunrise Point-LP Integrated Sensor Hub [8086:9d35] (rev 21)
Subsystem: Intel Corporation Device [8086:7270]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 20
Region 0: Memory at c2740000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [80] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: intel_ish_ipc
Kernel modules: intel_ish_ipc
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller [8086:9d2f] (rev 21) (prog-if 30 [XHCI])
Subsystem: Intel Corporation Device [8086:7270]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 125
Region 0: Memory at c2700000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [70] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [80] MSI: Enable+ Count=1/8 Maskable- 64bit+
Address: 00000000fee00278 Data: 0000
Kernel driver in use: xhci_hcd
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Thermal subsystem [8086:9d31] (rev 21)
Subsystem: Intel Corporation Device [8086:7270]
Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin C routed to IRQ 18
Region 0: Memory at c2741000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [50] Power Management version 3
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
Address: 00000000 Data: 0000
Kernel driver in use: intel_pch_thermal
Kernel modules: intel_pch_thermal
00:14.3 Multimedia controller [0480]: Intel Corporation Device [8086:9d32] (rev 01)
Subsystem: Intel Corporation Device [8086:7270]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64
Interrupt: pin A routed to IRQ 144
Region 0: Memory at c2710000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit+
Address: 00000000fee003f8 Data: 0000
Capabilities: [d0] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D3 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: ipu3-cio2
Kernel modules: ipu3_cio2
00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 [8086:9d60] (rev 21)
Subsystem: Intel Corporation Device [8086:7270]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 16
Region 0: Memory at c2742000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [80] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D3 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [90] Vendor Specific Information: Len=14 <?>
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:15.1 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 [8086:9d61] (rev 21)
Subsystem: Intel Corporation Device [8086:7270]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin B routed to IRQ 17
Region 0: Memory at c2743000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [80] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D3 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [90] Vendor Specific Information: Len=14 <?>
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:15.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #2 [8086:9d62] (rev 21)
Subsystem: Intel Corporation Device [8086:7270]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin C routed to IRQ 18
Region 0: Memory at c2744000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [80] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D3 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [90] Vendor Specific Information: Len=14 <?>
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:15.3 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #3 [8086:9d63] (rev 21)
Subsystem: Intel Corporation Device [8086:7270]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin D routed to IRQ 19
Region 0: Memory at c2745000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [80] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D3 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [90] Vendor Specific Information: Len=14 <?>
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-LP CSME HECI #1 [8086:9d3a] (rev 21)
Subsystem: Intel Corporation Device [8086:7270]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 132
Region 0: Memory at c2746000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [50] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [8c] MSI: Enable+ Count=1/1 Maskable- 64bit+
Address: 00000000fee00378 Data: 0000
Kernel driver in use: mei_me
Kernel modules: mei_me
00:16.4 Communication controller [0780]: Intel Corporation Device [8086:9d3e] (rev 21)
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 135
Region 0: Memory at c2747000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [50] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [8c] MSI: Enable+ Count=1/1 Maskable- 64bit+
Address: 00000000fee00398 Data: 0000
Kernel driver in use: mei_me
Kernel modules: mei_me
00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #1 [8086:9d10] (rev f1) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 122
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: 0000f000-00000fff [empty]
Memory behind bridge: fff00000-000fffff [empty]
Prefetchable memory behind bridge: 00000000c2400000-00000000c25fffff [size=2M]
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
DevCap: MaxPayload 256 bytes, PhantFunc 0
ExtTag- RBE+
DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
LnkCap: Port #1, Speed 8GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 <16us
ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp+
LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s (downgraded), Width x1 (ok)
TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
Slot #0, PowerLimit 10.000W; Interlock- NoCompl+
SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
Changed: MRL- PresDet+ LinkState+
RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
RootCap: CRSVisible-
RootSta: PME ReqID 0000, PMEStatus- PMEPending-
DevCap2: Completion Timeout: Range ABC, TimeoutDis+, LTR+, OBFF Not Supported ARIFwd+
AtomicOpsCap: Routing- 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled ARIFwd-
AtomicOpsCtl: ReqEn- EgressBlck-
LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee00218 Data: 0000
Capabilities: [90] Subsystem: Intel Corporation Device [8086:7270]
Capabilities: [a0] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [100 v0] Null
Capabilities: [140 v1] Access Control Services
ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd- EgressCtrl- DirectTrans-
ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
Capabilities: [200 v1] L1 PM Substates
L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
PortCommonModeRestoreTime=40us PortTPowerOnTime=44us
L1SubCtl1: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+
T_CommonMode=70us LTR1.2_Threshold=163840ns
L1SubCtl2: T_PwrOn=44us
Capabilities: [220 v1] Secondary PCI Express <?>
Kernel driver in use: pcieport
00:1c.4 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 [8086:9d14] (rev f1) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 123
Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
I/O behind bridge: 00003000-00003fff [size=4K]
Memory behind bridge: c1000000-c1ffffff [size=16M]
Prefetchable memory behind bridge: 0000000090000000-00000000a1ffffff [size=288M]
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
DevCap: MaxPayload 256 bytes, PhantFunc 0
ExtTag- RBE+
DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
LnkCap: Port #5, Speed 8GT/s, Width x4, ASPM not supported
ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp+
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s (downgraded), Width x0 (downgraded)
TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+
Slot #4, PowerLimit 25.000W; Interlock- NoCompl+
SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet+ CmdCplt- HPIrq+ LinkChg+
Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock-
Changed: MRL- PresDet- LinkState-
RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
RootCap: CRSVisible-
RootSta: PME ReqID 0000, PMEStatus- PMEPending-
DevCap2: Completion Timeout: Range ABC, TimeoutDis+, LTR+, OBFF Not Supported ARIFwd+
AtomicOpsCap: Routing- 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled ARIFwd-
AtomicOpsCtl: ReqEn- EgressBlck-
LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee00238 Data: 0000
Capabilities: [90] Subsystem: Intel Corporation Device [8086:7270]
Capabilities: [a0] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [100 v0] Null
Capabilities: [140 v1] Access Control Services
ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd- EgressCtrl- DirectTrans-
ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
Capabilities: [200 v1] L1 PM Substates
L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
PortCommonModeRestoreTime=40us PortTPowerOnTime=44us
L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
T_CommonMode=0us LTR1.2_Threshold=0ns
L1SubCtl2: T_PwrOn=44us
Capabilities: [220 v1] Secondary PCI Express <?>
Kernel driver in use: pcieport
00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 [8086:9d18] (rev f1) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 124
Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
I/O behind bridge: 0000f000-00000fff [empty]
Memory behind bridge: c2600000-c26fffff [size=1M]
Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff [empty]
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
DevCap: MaxPayload 256 bytes, PhantFunc 0
ExtTag- RBE+
DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 256 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
LnkCap: Port #9, Speed 8GT/s, Width x4, ASPM L1, Exit Latency L1 <16us
ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp+
LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 8GT/s (ok), Width x4 (ok)
TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
Slot #8, PowerLimit 25.000W; Interlock- NoCompl+
SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
Changed: MRL- PresDet+ LinkState+
RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
RootCap: CRSVisible-
RootSta: PME ReqID 0000, PMEStatus- PMEPending-
DevCap2: Completion Timeout: Range ABC, TimeoutDis+, LTR+, OBFF Not Supported ARIFwd+
AtomicOpsCap: Routing- 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled ARIFwd-
AtomicOpsCtl: ReqEn- EgressBlck-
LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+, EqualizationPhase1+
EqualizationPhase2+, EqualizationPhase3+, LinkEqualizationRequest-
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee00258 Data: 0000
Capabilities: [90] Subsystem: Intel Corporation Device [8086:7270]
Capabilities: [a0] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [100 v0] Null
Capabilities: [140 v1] Access Control Services
ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd- EgressCtrl- DirectTrans-
ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
Capabilities: [200 v1] L1 PM Substates
L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
PortCommonModeRestoreTime=40us PortTPowerOnTime=44us
L1SubCtl1: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+
T_CommonMode=40us LTR1.2_Threshold=163840ns
L1SubCtl2: T_PwrOn=44us
Capabilities: [220 v1] Secondary PCI Express <?>
Kernel driver in use: pcieport
00:1e.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO UART Controller #0 [8086:9d27] (rev 21)
Subsystem: Intel Corporation Device [8086:7270]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 20
Region 0: Memory at c2748000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [80] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [90] Vendor Specific Information: Len=14 <?>
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point LPC Controller/eSPI Controller [8086:9d4e] (rev 21)
Subsystem: Intel Corporation Device [8086:7270]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-LP PMC [8086:9d21] (rev 21)
Subsystem: Intel Corporation Device [8086:7270]
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Region 0: Memory at c273c000 (32-bit, non-prefetchable) [disabled] [size=16K]
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-LP HD Audio [8086:9d71] (rev 21) (prog-if 80)
Subsystem: Intel Corporation Device [8086:7270]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 64
Interrupt: pin A routed to IRQ 145
Region 0: Memory at c2738000 (64-bit, non-prefetchable) [size=16K]
Region 4: Memory at c2720000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [50] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
Address: 00000000fee00418 Data: 0000
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel, snd_soc_skl
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-LP SMBus [8086:9d23] (rev 21)
Subsystem: Intel Corporation Device [8086:7270]
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 16
Region 0: Memory at c2749000 (64-bit, non-prefetchable) [size=256]
Region 4: I/O ports at efa0 [size=32]
Kernel driver in use: i801_smbus
Kernel modules: i2c_i801
01:00.0 Ethernet controller [0200]: Marvell Technology Group Ltd. 88W8897 [AVASTAR] 802.11ac Wireless [11ab:2b38]
Subsystem: Device [0009:045e]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 146
Region 0: Memory at c2500000 (64-bit, prefetchable) [size=1M]
Region 2: Memory at c2400000 (64-bit, prefetchable) [size=1M]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [50] MSI: Enable+ Count=1/32 Maskable+ 64bit+
Address: 00000000fee00438 Data: 0000
Masking: fffffffe Pending: 00000000
Capabilities: [70] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <1us, L1 unlimited
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 10.000W
DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 512 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <2us, L1 unlimited
ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s (ok), Width x1 (ok)
TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, LTR+, OBFF Not Supported
AtomicOpsCap: 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
AtomicOpsCtl: ReqEn-
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
Capabilities: [100 v2] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
HeaderLog: 00000000 00000000 00000000 00000000
Capabilities: [140 v1] Device Serial Number 00-00-00-00-00-00-00-00
Capabilities: [150 v1] Power Budgeting <?>
Capabilities: [160 v1] Latency Tolerance Reporting
Max snoop latency: 0ns
Max no snoop latency: 0ns
Capabilities: [168 v1] L1 PM Substates
L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
PortCommonModeRestoreTime=70us PortTPowerOnTime=10us
L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
T_CommonMode=0us LTR1.2_Threshold=0ns
L1SubCtl2: T_PwrOn=10us
Kernel driver in use: mwifiex_pcie
Kernel modules: mwifiex_pcie
03:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961 [144d:a804] (prog-if 02 [NVM Express])
Subsystem: Samsung Electronics Co Ltd Device [144d:a801]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 16
NUMA node: 0
Region 0: Memory at c2600000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [50] MSI: Enable- Count=1/32 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [70] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 25.000W
DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset-
MaxPayload 256 bytes, MaxReadReq 512 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
LnkCap: Port #0, Speed 8GT/s, Width x4, ASPM L1, Exit Latency L1 <64us
ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 8GT/s (ok), Width x4 (ok)
TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, LTR+, OBFF Not Supported
AtomicOpsCap: 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled
AtomicOpsCtl: ReqEn-
LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+, EqualizationPhase1+
EqualizationPhase2+, EqualizationPhase3+, LinkEqualizationRequest-
Capabilities: [b0] MSI-X: Enable+ Count=8 Masked-
Vector table: BAR=0 offset=00003000
PBA: BAR=0 offset=00002000
Capabilities: [100 v2] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
HeaderLog: 00000000 00000000 00000000 00000000
Capabilities: [148 v1] Device Serial Number 00-00-00-00-00-00-00-00
Capabilities: [158 v1] Power Budgeting <?>
Capabilities: [168 v1] Secondary PCI Express <?>
Capabilities: [188 v1] Latency Tolerance Reporting
Max snoop latency: 2097152ns
Max no snoop latency: 2097152ns
Capabilities: [190 v1] L1 PM Substates
L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
PortCommonModeRestoreTime=10us PortTPowerOnTime=10us
L1SubCtl1: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+
T_CommonMode=0us LTR1.2_Threshold=163840ns
L1SubCtl2: T_PwrOn=44us
Kernel driver in use: nvme
Kernel modules: nvme
- cd /sys/kernel/debug/pmc_core/; grep -H . *
ltr_show:SOUTHPORT_A LTR: RAW: 0x8bf28bf2 Non-Snoop(ns): 1034240 Snoop(ns): 1034240
ltr_show:SOUTHPORT_B LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:SATA LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:GIGABIT_ETHERNET LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:XHCI LTR: RAW: 0x8828 Non-Snoop(ns): 0 Snoop(ns): 40960
ltr_show:Reserved LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:ME LTR: RAW: 0xc000c00 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:EVA LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:SOUTHPORT_C LTR: RAW: 0x9f409f4 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:HD_AUDIO LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:LPSS LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:SOUTHPORT_D LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:SOUTHPORT_E LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:CAMERA LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:ESPI LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:SCC LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:ISH LTR: RAW: 0x0 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:CURRENT_PLATFORM LTR: RAW: 0x40201 Non-Snoop(ns): 0 Snoop(ns): 0
ltr_show:AGGREGATED_SYSTEM LTR: RAW: 0x7e82a15 Non-Snoop(ns): 0 Snoop(ns): 0
mphy_core_lanes_power_gating_status:MPHY CORE LANE 0 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 1 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 2 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 3 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 4 State: Not power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 5 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 6 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 7 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 8 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 9 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 10 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 11 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 12 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 13 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 14 State: Power gated
mphy_core_lanes_power_gating_status:MPHY CORE LANE 15 State: Power gated
package_cstate_show:Package C2 : 0x4746f76ee16
package_cstate_show:Package C3 : 0x14fa1f3be34
package_cstate_show:Package C6 : 0x41fb860bb74
package_cstate_show:Package C7 : 0x1c3f92
package_cstate_show:Package C8 : 0x3a6b7d46
package_cstate_show:Package C9 : 0x0
package_cstate_show:Package C10 : 0x17faffc2ba4
pch_ip_power_gating_status:PCH IP: 0 - PMC State: On
pch_ip_power_gating_status:PCH IP: 1 - OPI-DMI State: On
pch_ip_power_gating_status:PCH IP: 2 - SPI / eSPI State: On
pch_ip_power_gating_status:PCH IP: 3 - XHCI State: On
pch_ip_power_gating_status:PCH IP: 4 - SPA State: On
pch_ip_power_gating_status:PCH IP: 5 - SPB State: Off
pch_ip_power_gating_status:PCH IP: 6 - SPC State: Off
pch_ip_power_gating_status:PCH IP: 7 - GBE State: Off
pch_ip_power_gating_status:PCH IP: 8 - SATA State: Off
pch_ip_power_gating_status:PCH IP: 9 - HDA-PGD0 State: On
pch_ip_power_gating_status:PCH IP: 10 - HDA-PGD1 State: Off
pch_ip_power_gating_status:PCH IP: 11 - HDA-PGD2 State: Off
pch_ip_power_gating_status:PCH IP: 12 - HDA-PGD3 State: Off
pch_ip_power_gating_status:PCH IP: 13 - RSVD State: Off
pch_ip_power_gating_status:PCH IP: 14 - LPSS State: On
pch_ip_power_gating_status:PCH IP: 15 - LPC State: Off
pch_ip_power_gating_status:PCH IP: 16 - SMB State: Off
pch_ip_power_gating_status:PCH IP: 17 - ISH State: On
pch_ip_power_gating_status:PCH IP: 18 - P2SB State: Off
pch_ip_power_gating_status:PCH IP: 19 - DFX State: Off
pch_ip_power_gating_status:PCH IP: 20 - SCC State: Off
pch_ip_power_gating_status:PCH IP: 21 - RSVD State: Off
pch_ip_power_gating_status:PCH IP: 22 - FUSE State: On
pch_ip_power_gating_status:PCH IP: 23 - CAMERA State: Off
pch_ip_power_gating_status:PCH IP: 24 - RSVD State: Off
pch_ip_power_gating_status:PCH IP: 25 - USB3-OTG State: Off
pch_ip_power_gating_status:PCH IP: 26 - EXI State: Off
pch_ip_power_gating_status:PCH IP: 27 - CSE State: Off
pch_ip_power_gating_status:PCH IP: 28 - CSME_KVM State: Off
pch_ip_power_gating_status:PCH IP: 29 - CSME_PMT State: Off
pch_ip_power_gating_status:PCH IP: 30 - CSME_CLINK State: Off
pch_ip_power_gating_status:PCH IP: 31 - CSME_PTIO State: Off
pch_ip_power_gating_status:PCH IP: 32 - CSME_USBR State: Off
pch_ip_power_gating_status:PCH IP: 33 - CSME_SUSRAM State: Off
pch_ip_power_gating_status:PCH IP: 34 - CSME_SMT State: Off
pch_ip_power_gating_status:PCH IP: 35 - RSVD State: Off
pch_ip_power_gating_status:PCH IP: 36 - CSME_SMS2 State: Off
pch_ip_power_gating_status:PCH IP: 37 - CSME_SMS1 State: Off
pch_ip_power_gating_status:PCH IP: 38 - CSME_RTC State: Off
pch_ip_power_gating_status:PCH IP: 39 - CSME_PSF State: Off
pll_status:MIPI PLL State: Idle
pll_status:GEN2 USB2PCIE2 PLL State: Active
pll_status:DMIPCIE3 PLL State: Active
pll_status:SATA PLL State: Idle
slp_s0_residency_usec:585659300
@StollD
Ah sorry, please run cd /sys/kernel/debug/pmc_core/; grep -H . *
with root privilege.
sudo su -c "cd /sys/kernel/debug/pmc_core/; grep -H . *"
(I will update my old comment)
Yep, that worked. Updated my comment too.
@StollD Thank you for your info!
I can see no special difference... I've got stuck.
@StollD Can you still achieve S0ix when you use distribution's (without jakeday patches) 5.2.y kernel?
No, using the default fedora kernel I cannot get into S0ix.
Also, mirroring from gitter:
After updating my BIOS and reinstalling Linux, I had some issues to get into s0ix too. When I compared my logs with the ones I sent you I noticed that the cameras suddenly were reported as not power manageable (that error didn't come up for me with the old BIOS). I disabled the cameras in the BIOS and now my s0ix works again, so maybe that could fix your problems too?
Thank you for your info!
It's interesting for me that the default fedora kernel cannot achieve S0ix. The only thing that comes to mind is NVMe power management patch in 0002-suspend.patch. The NVMe patch is from 5.3-rc. So, if you are interested, try 5.3-rc (without jakeday patches) to see you can still achieve S0ix there.
I disabled the cameras in the BIOS and now my s0ix works again, so maybe that could fix your problems too?
I disabled all cameras, but unfortunately, I still cannot achieve the states.
I'm now trying Intel's SoC Watch. I hope I can find something interesting with it.
It doesn't work with 5.3-rc5 either, sadly. Using the stock kernels it doesn't even get into the higher packages (C7-10 just show 0).
Building a kernel with just surface_acpi
could be an option for further testing, since that appears to fix this behaviour (you can replicate that behaviour by blacklisting surface_acpi
on the patched kernel)
But I discovered something else:
As it turns out, my camera fix that I posted earlier was a false positive. Since I reinstalled linux getting into S0ix was very unreliable. Sometimes it worked, but most of the time it didn't.
When I disabled every device you can disable in the BIOS everything worked again (tested extensively by suspending and resuming all over again for like the last hour). Then I reenabled the devices one by one, and:
It seemed to be Bluetooth. When I enabled that in the BIOS S0ix was broken again. And given that I disable Bluetooth, I can enable every other device (inc. cameras), and S0ix still worked. On my old install I disabled Bluetooth, because if it was enabled the WiFi speed at my university tanked, so that would explain why it worked flawless for me before.
Note: Even just disabling Bluetooth in the OS and rebooting seems to be enough
I hope this helps people trying to get Kaby Lake devices into S0ix. I don't think it will work on Sky Lake, since /sys/devices/system/cpu/cpuidle/low_power_idle_system_residency_us
doesn't even exist there, so the kernel must have a reason to think that S0ix isn't possible at all.
Thank you for your investigation! Disabling Bluetooth still does not enable S0ix…
Regarding low_power_idle_system_residency_us
not exist, I believe it does not mean S0ix is not possible. The commit [2] message:
Here the count "low_power_idle_system_residency_us" show the count the system was in low power state. This is read via MMIO interface. This is mapped to SLP_S0 residency on modern Intel systems. This residency is achieved only when CPU is in PKG C10 and all functional blocks are in low power state.
I think that I just cannot read via MMIO interface. (I don't know well about MMIO, though.)
Some links regarding low_power_idle_system_residency_us
The surface_acpi
is doing something about S0ix as a result for SB2 (?)
On SB1/SP4, I think the module currently does nothing except Lid switch.
I think I know why it isn't detected.
Using your acpidump [1] I disassembled the LPIT from your SB1 and from my SB2, and noticed that for the SB1 the adress space where S0ix residency is stored is set to FunctionalFixedHW
while it is SystemMemory
on SB2. The LPIT support in the kernel can only read system S0ix residency from SystemMemory
, not from FunctionalFixedHW
(thats where it tries to read CPU residency from).
if (info->gaddr.space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY) {
info->iomem_addr = ioremap_nocache(info->gaddr.address,
info->gaddr.bit_width / 8);
if (!info->iomem_addr)
return;
/* Silently fail, if cpuidle attribute group is not present */
sysfs_add_file_to_group(&cpu_subsys.dev_root->kobj,
&dev_attr_low_power_idle_system_residency_us.attr,
"cpuidle");
} else if (info->gaddr.space_id == ACPI_ADR_SPACE_FIXED_HARDWARE) {
/* Silently fail, if cpuidle attribute group is not present */
sysfs_add_file_to_group(&cpu_subsys.dev_root->kobj,
&dev_attr_low_power_idle_cpu_residency_us.attr,
"cpuidle");
}
For comparison, here are both LPIT tables:
SB1:
[078h 0120 4] Residency : 00007530
[07Ch 0124 4] Latency : 00000BB8
[080h 0128 12] Residency Counter : [Generic Address Structure]
[080h 0128 1] Space ID : 7F [FunctionalFixedHW]
[081h 0129 1] Bit Width : 40
[082h 0130 1] Bit Offset : 00
[083h 0131 1] Encoded Access Width : 00 [Undefined/Legacy]
[084h 0132 8] Address : 0000000000000632
[08Ch 0140 8] Counter Frequency : 0000000000000000
SB2:
[078h 0120 4] Residency : 00007530
[07Ch 0124 4] Latency : 00000BB8
[080h 0128 12] Residency Counter : [Generic Address Structure]
[080h 0128 1] Space ID : 00 [SystemMemory]
[081h 0129 1] Bit Width : 20
[082h 0130 1] Bit Offset : 00
[083h 0131 1] Encoded Access Width : 03 [DWord Access:32]
[084h 0132 8] Address : 00000000FE00013C
[08Ch 0140 8] Counter Frequency : 000000000000256C
So, what I am wondering now: Is it possible that your system actually gets into S0ix but the kernel cannot show you that it worked?
Actually, when you look further into the LPIT table, you can find the same FunctionalFixedHW
entry a second time. For SB1, it is simply duplicated, while for SB2 it is the exact same entry as on SB1, in addition to the SystemMemory
entry.
SB1:
[040h 0064 4] Residency : 00007530
[044h 0068 4] Latency : 00000BB8
[048h 0072 12] Residency Counter : [Generic Address Structure]
[048h 0072 1] Space ID : 7F [FunctionalFixedHW]
[049h 0073 1] Bit Width : 40
[04Ah 0074 1] Bit Offset : 00
[04Bh 0075 1] Encoded Access Width : 00 [Undefined/Legacy]
[04Ch 0076 8] Address : 0000000000000632
[054h 0084 8] Counter Frequency : 0000000000000000
[...]
[078h 0120 4] Residency : 00007530
[07Ch 0124 4] Latency : 00000BB8
[080h 0128 12] Residency Counter : [Generic Address Structure]
[080h 0128 1] Space ID : 7F [FunctionalFixedHW]
[081h 0129 1] Bit Width : 40
[082h 0130 1] Bit Offset : 00
[083h 0131 1] Encoded Access Width : 00 [Undefined/Legacy]
[084h 0132 8] Address : 0000000000000632
[08Ch 0140 8] Counter Frequency : 0000000000000000
SB2:
[040h 0064 4] Residency : 00007530
[044h 0068 4] Latency : 00000BB8
[048h 0072 12] Residency Counter : [Generic Address Structure]
[048h 0072 1] Space ID : 7F [FunctionalFixedHW]
[049h 0073 1] Bit Width : 40
[04Ah 0074 1] Bit Offset : 00
[04Bh 0075 1] Encoded Access Width : 00 [Undefined/Legacy]
[04Ch 0076 8] Address : 0000000000000632
[054h 0084 8] Counter Frequency : 0000000000000000
[...]
[078h 0120 4] Residency : 00007530
[07Ch 0124 4] Latency : 00000BB8
[080h 0128 12] Residency Counter : [Generic Address Structure]
[080h 0128 1] Space ID : 00 [SystemMemory]
[081h 0129 1] Bit Width : 20
[082h 0130 1] Bit Offset : 00
[083h 0131 1] Encoded Access Width : 03 [DWord Access:32]
[084h 0132 8] Address : 00000000FE00013C
[08Ch 0140 8] Counter Frequency : 000000000000256C
These are the entries that store the value from low_power_idle_cpu_residency_us
as far as I can tell. Whats interesting about them is that their Address
fields contain the same value, so both counters would be written to / read from the same MSR (Model Specific Register) [1]
The only conclusion I can draw from this tbh, is that both values (CPU and system residency) might be connected somehow, or that the HW description on the SB1 is bugged :P
So, what I am wondering now: Is it possible that your system actually gets into S0ix but the kernel cannot show you that it worked?
I cannot say for sure, but at least slp_s0_residency_usec
exists and should be valid on Skylake, too. However, it always shows 0. Power consumption between suspend is about 1~2 %/h. This result may also imply that it did not enter S0ix.
Link to the commit about slp_s0_residency_usec
Link to the spec (the link in the commit is broken)
Power consumption between suspend is about 1~2 %/h. This result may also imply that it did not enter S0ix.
I never did an exact measurement, but thats similar to what I have noticed with S0ix working. I will do an exact test overnight, with S0ix disabled / sabotaged, and then a more exact one with S0ix enabled.
Link to the commit about
slp_s0_residency_usec
If you look at the version of that driver in master
, you can see that it uses the (IO mapped) address from LPIT to figure out the base address for the PMC data. If it cannot find that address, it will guess the address and just use a default (0xFE000000
).
if (lpit_read_residency_count_address(&slp_s0_addr))
pmcdev->base_addr = PMC_BASE_ADDR_DEFAULT;
else
pmcdev->base_addr = slp_s0_addr - pmcdev->map->slp_s0_offset;
The values outputted from that driver are then just read from that address + an offset (0x13c
for Skylake and Kabylake as far as I can tell, see SPT_PMC_SLP_S0_RES_COUNTER_OFFSET
in the header file of the driver).
And given that value is effectively guessed I would be careful with trusting anything that driver outputs to be honest. But I also don't know if the surfaces change that memory address, or if they even can, so take everything I say with a grain of salt. But given that the kernel engineers made calculating it the default, it seems to be changeable.
I will try to modify my driver to output the calculated address. But since we don't know if it changed it is potentially useless.
I am still looking through the spec, so if I find something I will post it of course. (for example a way to get the PCM base address from the DSDT)
PMC_BASE_ADDR_DEFAULT
: https://github.com/torvalds/linux/blob/master/drivers/platform/x86/intel_pmc_core.h#L17lpit_read_residency_count_address
: https://github.com/torvalds/linux/blob/cdc5ffc4100549654e19e6f068cf1fc0871a85c2/drivers/acpi/acpi_lpit.c#L86-L95I will try to modify my driver to output the calculated address. But since we don't know if it changed it is potentially useless.
Actually no, I am stupid. That address is read from ACPI and I posted the dump above. So 00000000FE00013C
- 0x13c
= 00000000FE000000
== 0xFE000000
. So it is the default one, at least on SB2.
Of course it doesn't mean it is the same for SB1 as well but it definitly increases my confusion.
EDIT: But then, on the other hand, if both addresses are the same, both values in sysfs are backed by the same field. So if the address doesn't exist in LPIT for SB1, I doubt that the PMC driver would return anything sane, even with the correct base address.
Figuring this out might really bow down to suspending the surface overnight and comparing the battery consumtion, as stupid as it might sound.
@kitakar5525 Have you tried using turbostat
[1] to test if you can enter S0ix?
$ sudo turbostat -q -S -s GFX%rc6,Pkg%pc2,Pkg%pc8,Pkg%pc9,CPU%LPI,SYS%LPI
run this and leave it running. It will output a new measurement every 5 seconds. While the command is still running, suspend, then resume. If the SYS%LPI
column shows a non-zero value, you entered S0ix, as per intels guide. [2]
The commands that were used in the guide (combining turbostat and the command that puts the computer to sleep) didn't work for me, but doing what I wrote above works.
Yes, I tried turbostat but it seems that it relies on low_power_idle_system_residency_us
[1] and silently ignores SYS%LPI
column.
$ sudo turbostat -q -S -s GFX%rc6,Pkg%pc2,Pkg%pc8,Pkg%pc9,CPU%LPI,SYS%LPI
GFX%rc6 Pkg%pc2 Pkg%pc8 Pkg%pc9 CPU%LPI
[...]
# after about 1 min suspend
100.37 0.93 0.16 0.01 91.81
[...]
I also don't calculate the consumption regularly, but there are two samples for recent results.
On my SB1:
I feel it tend to get lower consumption per hour if it sleeps longer.
You can use upower to show current (tablet+base combined) battery percentage
upower -i /org/freedesktop/UPower/devices/DisplayDevice
Yes, I tried turbostat but it seems that it relies on
low_power_idle_system_residency_us
[1] and silently ignoresSYS%LPI
column.
Ah, damm, I missed that when checking the source code.
I also don't calculate the consumption regularly, but there are two samples for recent results.
On my SB1:
about 11 hours suspend: about 1.8 %/h
about 30 min suspend: about 2.7 %/h
I feel it tend to get lower consumption per hour if it sleeps longer.
After suspending for 12 hours in S0ix my SB2 lost exactly 12% of battery, so 1%/h. Still working on getting numbers without S0ix. But it doesn't seem too far off from your results.
Still working on getting numbers without S0ix
OK. Thank you for testing.
Suspended again for 10 hours, without S0ix, and it lost 20% of battery life in that time. So 2%/h without S0ix. The CPU still entered PC10 though.
Given this result it doesn't sound like my idea that the SB1 enters S0ix without exposing it properly is of much value, sorry.
Given this result it doesn't sound like my idea that the SB1 enters S0ix without exposing it properly is of much value, sorry.
I see…
Another result on Linux 5.2.9
I will collect data on Windows using the SoC Watch and sleepstudy (powercfg /sleepstudy
) tonight.
1.6 %/h battery drain sounds not so bad, but I'm just curious about achieving S0ix : )
You can download SoC Watch as a package from
Choose Energy Analysis
for Windows and Linux.
For Linux, standalone version is also available. If you prefer this version, choose
Intel® SoC Watch Collectors for Energy Analysis
Optionally, you can use Intel® VTune™ Amplifier
for visualized result.
Usage guide
If you want to use -z
option to automatically enter Connected Standby, retrieve WDTF from Windows\Program Files (x86)\Windows Kits\10\Testing\Runtimes
and install it.
Be careful, it will disable some features, like Lock Screen. Uninstall it when you ’re done.
EDIT: 2019-11-05 You may need to disable Secure Boot to use -f connected-standby
.
You need to patch the driver source (just one line) to use on Linux 5.2.
```diff From e32a64ed67094fcf19277b2eda1888e9c80246a3 Mon Sep 17 00:00:00 2001 From: kitakar5525 <34676735+kitakar5525@users.noreply.github.com> Date: Sat, 24 Aug 2019 01:53:02 +0900 Subject: [PATCH] socwatch_driver: update to build on 5.2 --- src/sw_trace_notifier_provider.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sw_trace_notifier_provider.c b/src/sw_trace_notifier_provider.c index 8c78790..0962e27 100644 --- a/src/sw_trace_notifier_provider.c +++ b/src/sw_trace_notifier_provider.c @@ -1428,7 +1428,7 @@ static int sw_probe_cpufreq_notifier_i(struct notifier_block *block, unsigned lo { struct cpufreq_freqs *freqs = data; static struct sw_trace_notifier_data *node = NULL; - int cpu = freqs->cpu; + int cpu = freqs->policy->cpu; if (state == CPUFREQ_PRECHANGE) { pw_pr_debug("CPU %d reports a CPUFREQ_PRECHANGE for target CPU %d at TSC = %llu\n", RAW_CPU(), cpu, sw_timestamp()); -- 2.23.0
Not useful data. Just as my note.
We might be interested in ACPI D-State (OS) (acpi-dstate)
and Connected Standby Analysis (connected-standby)
section.
It seems that Windows was in Moderate System Activity
from 01:28:08 to 08:58:01.
It shows that the device consumed 3% of battery while Modern Standby (S0ix).
…I feel it rather consumed 6% of battery (?) I'm not sure. Anyway, it's less than 1 %/h drain.
EDIT: Added following screenshot on 2019-11-06
Sadly, less info is available. I wanted to see devices D-state residency on suspend.
However, ACPI D-State (OS) (acpi-dstate)
and Connected Standby Analysis (connected-standby)
section is not available.
Furthermore, it may be inaccurate.
Graphics C-State RC0
residency is 99.35
. Whereas turbostat or powertop reports RC6 residency is 99+.ACPI S-State S3
, but S3 (suspend-to-ram) is not available, as we already know.However, thanks to the info, I might find the cause of wifi dropping after suspend (Issue #420)
On Windows, mrvlpcie8897
will enter D3hot but the parent bridge PCI\VEN_8086&DEV_9D1B&SUBSYS_72708086&REV_F1\3&11583659&0&EB
will stay on D0 state.
=================
ACPI D-State (OS)
=================
ACPI D-State Summary: Residency (Percentage and Time)
Device ID , Device Class , Friendly Name , Instance Name , D0 (%), D1 (%), D2 (%), D3Hot (%), D3Cold (%), D3Unknown (%), D0 (msec) , D1 (msec), D2 (msec) , D3Hot (msec), D3Cold (msec), D3Unknown (msec)
[...]
0xbf5aebb0, NET , mrvlpcie8897 , PCI\VEN_11AB&DEV_2B38&SUBSYS_045E0004&REV_00\4&1A5036A5&0&00EB , 1.56 , 0.00 , 0.00 , 98.44 , 0.00 , 0.00 , 422401.74 , 0.00 , 0.00 , 26580743.02 , 0.00 , 0.00
0xbf53f340, SYSTEM , pci , PCI\VEN_8086&DEV_9D1B&SUBSYS_72708086&REV_F1\3&11583659&0&EB , 100.00, 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 27003144.76, 0.00 , 0.00 , 0.00 , 0.00 , 0.00
Whereas on Linux, the kernel will power off the parent bridge (by calling acpi method _SB.PCI0.RP12 _OFF
). It might be the cause of wifi disappearing after suspend
Hello, @RussianNeuroMancer. I'm sorry to bother you, but I have some questions about S0ix states on Skylake devices.
We're currently having trouble achieving S0ix states on Surface Book 1 (SB1, Skylake) and also possibly on Surface Pro 4 (SP4, Skylake). Whereas, some SB2 (Kaby Lake or Kaby Lake R) owners reported S0ix states are working on their device (https://github.com/jakeday/linux-surface/issues/554#issue-481966552).
I followed what you did on HP Elite x2 1013 G3 (I understand it's Kaby Lake R. I have never seen S0ix debugging on Skylake devices)
quirk_xtal_ignore
by adding SB1 to dmi table but it has no effect)I remember you mentioned Skylake devices somewhere before. So, my questions are:
low_power_idle_system_residency_us
sysfs entry does not exist. Do you know if it is normal for Skylake devices? (Whereas, low_power_idle_cpu_residency_us
and s0ix_residency_usec
exist.)Thank you.
And one more question:
Hi, @kitakar5525 ! :)
I followed what you did on HP Elite x2 1013 G3
Then check out this one too. Besides low residency there is currently two other issues, specifically spontaneous wakeup if tablet was suspended via button or "systemctl suspend" command and not working wakeup via power button.
I think all the patches in the bug report is already upstream.
Correct.
Do you know Skylake devices which can achieve S0ix states?
Do you know Skylake devices which can use Modern Standby on Windows?
Theoretically HP EliteBook Folio G1 (model V1C64EA#ACB) I have access to should be able to reach S0ix under Windows, but due to enabled PMC_READ_DISABLE flag in BIOS (and no option to disable it) I can't even read /sys/kernel/debug/pmc_core/mphy_core_lanes_power_gating_status and /sys/kernel/debug/pmc_core/pll_status (error message: "Access denied: please disable PMC_READ_DISABLE setting in BIOS.") and of course S0ix doesn't work on this device with Linux. There is no Windows on unit I have access to verify my assumption, but the fact that there is option in BIOS that allow to enable/disable "Deep sleep" (i.e. S3) suggest that device should be able to sleep without S3 (so with S0ix, I guess?) at least in Windows.
Do you know if it is normal for Skylake devices?
No, I don't know if it's normal. You can check this bugreport for more information about HP EliteBook Folio G1.
I recommend you try to follow same procedure as I did: open this blog post, follow described steps, document what you see and what results you get (for example battery consumption over night; compare it with preinstalled Windows - specifically use "factory" image without updates, if possible, as I wasn't able to get S0ix working on HP Elite x2 1013 G3 on other installation Windows 10 images besides factory image) and then register bugreport in kernel bugzilla. After that you may want to ask Rajneesh Bhardwaj (rajneesh.bhardwaj@linux.intel.com) and David Box (david.e.box@linux.intel.com) look into your report.
Thank you @RussianNeuroMancer for your reply!
Then check out this one too.
Actually, I checked that bug report, too : )
Theoretically HP EliteBook Folio G1 [...] and of course S0ix doesn't work on this device with Linux
Hmm… So, we are still not sure whether there are Skylake devices that can achieve S0ix on Linux in the world.
No, I don't know if it's normal. You can check this bugreport for more information about HP EliteBook Folio G1.
Can you see the /sys/devices/system/cpu/cpuidle/low_power_idle_system_residency_us
entry on your HP EliteBook Folio G1? On my SB1, No such file or directory
when I tried to read it (second code block in https://github.com/jakeday/linux-surface/issues/554#issuecomment-522302184)
EDIT:
# There is no such file: low_power_idle_system_residency_us
$ ls /sys/devices/system/cpu/cpuidle
current_driver current_governor_ro low_power_idle_cpu_residency_us
I recommend you try to follow same procedure as I did
Yeah, I might try to do that. I don't expect so much response, though.
Can you see the /sys/devices/system/cpu/cpuidle/low_power_idle_system_residency_us entry on your HP EliteBook Folio G1?
I will try to switch off "Deep sleep" option in BIOS and let you know what's there. It's will take couple of days though, as device is currently not on my hands.
OK. Thank you!
I think the entry does not exist does not necessarily lead to S0ix failure, but I'm curious.
@RussianNeuroMancer
Also, if you can, I want to see acpidump (sudo acpidump > acpidump.dat
) of the HP EliteBook Folio G1 to see and compare LPIT table (https://github.com/jakeday/linux-surface/issues/554#issuecomment-524554022)
# There is no such file: low_power_idle_system_residency_us
$ ls /sys/devices/system/cpu/cpuidle
current_driver current_governor_ro low_power_idle_cpu_residency_us
Same on HP EliteBook Folio G1 with disabled Deep sleep and enabled Connected standby.
Thank you for investigating!
Same on HP EliteBook Folio G1 with disabled Deep sleep and enabled Connected standby.
I see. And I looked into the LPIT table and it's the same as SB1. So, it might be that Skylake devices are not supported to show the low_power_idle_system_residency_us
counter.
@RussianNeuroMancer By the way, I come to think that we might get interesting result if we compare the acpidump with Deep Sleep disabled and an acpidump with Deep Sleep enabled. So, if you're interested, could you please post an acpidump with Deep Sleep enabled, too?
Because SB1 and SP4 don't support ACPI S3 state:
$ dmesg -x | grep "ACPI: (supports"
kern :info : [ 0.472748] ACPI: (supports S0 S4 S5)
and there is no such option to enable Deep Sleep in UEFI.
Thank you.
Acpidump with Deep Sleep enabled is attached.
@RussianNeuroMancer Thank you!
It seems that the only difference is FACP table:
```diff diff --git a/Deep-Sleep-disabled/dsl/facp.dsl b/Deep-Sleep-enabled/dsl/facp.dsl index 2f9bea0..6ffaaa4 100644 --- a/Deep-Sleep-disabled/dsl/facp.dsl +++ b/Deep-Sleep-enabled/dsl/facp.dsl @@ -13,7 +13,7 @@ [000h 0000 4] Signature : "FACP" [Fixed ACPI Description Table (FADT)] [004h 0004 4] Table Length : 000000F4 [008h 0008 1] Revision : 05 -[009h 0009 1] Checksum : 8F +[009h 0009 1] Checksum : 9F [00Ah 0010 6] Oem ID : "HPQOEM" [010h 0016 8] Oem Table ID : "SLIC-BPC" [018h 0024 4] Oem Revision : 00000000 @@ -55,15 +55,15 @@ [06Ah 0106 1] RTC Day Alarm Index : 0D [06Bh 0107 1] RTC Month Alarm Index : 00 [06Ch 0108 1] RTC Century Index : 32 -[06Dh 0109 2] Boot Flags (decoded below) : 0001 +[06Dh 0109 2] Boot Flags (decoded below) : 0011 Legacy Devices Supported (V2) : 1 8042 Present on ports 60/64 (V2) : 0 VGA Not Present (V4) : 0 MSI Not Supported (V4) : 0 - PCIe ASPM Not Supported (V4) : 0 + PCIe ASPM Not Supported (V4) : 1 CMOS RTC Not Present (V5) : 0 [06Fh 0111 1] Reserved : 00 -[070h 0112 4] Flags (decoded below) : 002384A5 +[070h 0112 4] Flags (decoded below) : 000384A5 WBINVD instruction is operational (V1) : 1 WBINVD flushes all caches (V1) : 0 All CPUs support C1 (V1) : 1 @@ -85,7 +85,7 @@ Use APIC Cluster Model (V4) : 0 Use APIC Physical Destination Mode (V4) : 0 Hardware Reduced (V5) : 0 - Low Power S0 Idle (V5) : 1 + Low Power S0 Idle (V5) : 0 [074h 0116 12] Reset Register : [Generic Address Structure] [074h 0116 1] Space ID : 01 [SystemIO] @@ -163,14 +163,14 @@ Raw Table Data: Length 244 (0xF4) - 0000: 46 41 43 50 F4 00 00 00 05 8F 48 50 51 4F 45 4D // FACP......HPQOEM + 0000: 46 41 43 50 F4 00 00 00 05 9F 48 50 51 4F 45 4D // FACP......HPQOEM 0010: 53 4C 49 43 2D 42 50 43 00 00 00 00 48 50 20 20 // SLIC-BPC....HP 0020: 01 00 00 00 00 80 E5 41 00 20 EC 41 00 02 09 00 // .......A. .A.... 0030: B2 00 00 00 F0 F1 F2 00 00 18 00 00 00 00 00 00 // ................ 0040: 04 18 00 00 00 00 00 00 50 18 00 00 08 18 00 00 // ........P....... 0050: 80 18 00 00 00 00 00 00 04 02 01 04 20 00 10 00 // ............ ... - 0060: 65 00 E9 03 00 00 00 00 01 03 0D 00 32 01 00 00 // e...........2... - 0070: A5 84 23 00 01 08 00 01 80 04 00 00 00 00 00 00 // ..#............. + 0060: 65 00 E9 03 00 00 00 00 01 03 0D 00 32 11 00 00 // e...........2... + 0070: A5 84 03 00 01 08 00 01 80 04 00 00 00 00 00 00 // ................ 0080: FE 00 00 00 00 00 00 00 00 00 00 00 00 20 EC 41 // ............. .A 0090: 00 00 00 00 01 20 00 02 00 18 00 00 00 00 00 00 // ..... .......... 00A0: 01 00 00 02 00 00 00 00 00 00 00 00 01 10 00 02 // ................ ```
The interesting info I can see is when Deep Sleep is enabled, PCIe ASPM is disabled:
- PCIe ASPM Not Supported (V4) : 0
+ PCIe ASPM Not Supported (V4) : 1
I may try to report a bug to Bugzilla if this issue persists even on 5.4-rc. Thank you a lot!
@ Surface owners
By the way, if we are lucky, adding ACPI S3 (traditional suspend-to-ram) support is not so difficult by patching DSDT. For SB1, you just need to change one line to notify the Linux kernel that this device does support S3 state:
diff --git a/dsdt.dsl b/dsdt.dsl
index 1d520ff..259de4f 100644
--- a/dsdt.dsl
+++ b/dsdt.dsl
@@ -185,7 +185,7 @@ DefinitionBlock ("", "DSDT", 2, "MSFT ", "MSFT ", 0x00000001)
Name (SS1, Zero)
Name (SS2, Zero)
- Name (SS3, Zero)
+ Name (SS3, One)
Name (SS4, One)
OperationRegion (GNVS, SystemMemory, 0x8BEB6000, 0x077C)
Field (GNVS, AnyAcc, Lock, Preserve)
Refer to ArchWiki for compiling DSDT.
Then, tell the Linux kernel to prefer S3 state for suspend:
echo deep | sudo tee /sys/power/mem_sleep
However, my SB1 cannot wakeup from S3 sleep. So, I tried with ASPM disabled according to the finding on previous comment (add pcie_aspm=off
to your bootloader) but it has no effect.
References for adding S3 by patching DSDT on another devices:
From @StollD (https://github.com/jakeday/linux-surface/issues/571#issuecomment-533563152):
You could try disabling bluetooth in the BIOS. Enabling bluetooth completely breaks S0ix for me on SB2. Since SB2 and SP5 have the same CPU, it might work for you too.
Also make sure that you are using the sleep script from qzed's repository, not the one from here.
@woberts Have you tried disabling Bluetooth?
@StollD
It doesn't show because qzed's debian kernel is not compiled with CONFIG_INTEL_PMC_CORE enabled.
I see. I opened a issue qzed/linux-surface-kernel-configs#1. Thank you for finding it.
@kitakar5525 yes, i have now tried disabling bluetooth in bios and checked I am using qzed's sleep script but no change unfortunately..
Intel(R) Core(TM) i5-7300U CPU NAME=Fedora VERSION_CODENAME="" PRETTY_NAME="Fedora 30 (Workstation Edition)" CPE_NAME="cpe:/o:fedoraproject:fedora:30" uname -r: 5.2.16-surface /sys/devices/virtual/dmi/id/product_name:Surface Pro /sys/devices/virtual/dmi/id/product_sku:Surface_Pro_1796 /sys/devices/system/cpu/cpuidle/low_power_idle_cpu_residency_us:1060998610 /sys/devices/system/cpu/cpuidle/low_power_idle_system_residency_us:1067448016 /sys/kernel/debug/pmc_core/package_cstate_show:Package C2 : 0x14fff87160 /sys/kernel/debug/pmc_core/package_cstate_show:Package C3 : 0xdab851e7 /sys/kernel/debug/pmc_core/package_cstate_show:Package C6 : 0x2fd6365c7 /sys/kernel/debug/pmc_core/package_cstate_show:Package C7 : 0x1660731 /sys/kernel/debug/pmc_core/package_cstate_show:Package C8 : 0x134288dc69 /sys/kernel/debug/pmc_core/package_cstate_show:Package C9 : 0x89378f3bb /sys/kernel/debug/pmc_core/package_cstate_show:Package C10 : 0x29df4166d75 /sys/kernel/debug/pmc_core/slp_s0_residency_usec:1022615200 grep: /sys/kernel/debug/pmc_atom/sleep_state: No such file or directory grep: /sys/kernel/debug/telemetry/s0ix_residency_usec: No such file or directory
@woberts quite the opposite actually! low_power_idle_system_residency_us
and slp_s0_residency_usec
not being 0 means that the system reached S0ix successfully.
And since both values are approximatey the same as low_power_idle_cpu_residency_us
, it means that the system didn't drop out of S0ix randomly either (This can also happen with bluetooth enabled). It spent all of the time it was suspended in S0ix.
If you want to reenable bluetooth, I have been experimenting with fixing it's S0ix issues using the sleep script instead of disabling it entirely. I would be curious if using this sleep script with bluetooth enabled gives you similar results: https://github.com/StollD/linux-surface/blob/bugfix/bluetooth-suspend/root/lib/systemd/system-sleep/sleep
@StollD Ah OK thanks, I was misreading the results. I tried again with bluetooth enabled and your sleep script and its also seems to work. Thanks very much for working on it!
Intel(R) Core(TM) i5-7300U CPU NAME=Fedora VERSION_CODENAME="" PRETTY_NAME="Fedora 30 (Workstation Edition)" CPE_NAME="cpe:/o:fedoraproject:fedora:30" uname -r: 5.2.16-surface /sys/devices/virtual/dmi/id/product_name:Surface Pro /sys/devices/virtual/dmi/id/product_sku:Surface_Pro_1796 /sys/devices/system/cpu/cpuidle/low_power_idle_cpu_residency_us:118682634 /sys/devices/system/cpu/cpuidle/low_power_idle_system_residency_us:119469415 /sys/kernel/debug/pmc_core/package_cstate_show:Package C2 : 0xd993fc016a /sys/kernel/debug/pmc_core/package_cstate_show:Package C3 : 0x489ea4863 /sys/kernel/debug/pmc_core/package_cstate_show:Package C6 : 0x1323be05d5 /sys/kernel/debug/pmc_core/package_cstate_show:Package C7 : 0xefe9be1 /sys/kernel/debug/pmc_core/package_cstate_show:Package C8 : 0xdf93078953 /sys/kernel/debug/pmc_core/package_cstate_show:Package C9 : 0x57314ac117 /sys/kernel/debug/pmc_core/package_cstate_show:Package C10 : 0x4af0c951eb /sys/kernel/debug/pmc_core/slp_s0_residency_usec:114451700 grep: /sys/kernel/debug/pmc_atom/sleep_state: No such file or directory grep: /sys/kernel/debug/telemetry/s0ix_residency_usec: No such file or directory
@woberts Great result!
@alexanderi96 You can also try the latest system-sleep/sleep script to disable Bluetooth when no device connected to Bluetooth on suspend.
My Surface Book 1 (Skylake) cannot achieve S0ix states (on Windows, it is called Modern Standby or Connected Standby) even if I followed the document [1].
Some SB2 users (Kaby Lake and Kaby Lake R) reported their device can achieve S0ix states
References