Android10 系統休眠調試相關
-
實時打印休眠日志(實測好像沒作用):echo 1 > /sys/module/printk/parameters/console_suspend
-
查看喚醒鎖:cat sys/power/wake_lock
msm8953_64:/ # cat sys/power/wake_lock PowerManager.SuspendLockout PowerManagerService.Display PowerManagerService.WakeLocks
PowerManager.SuspendLockout:autosuspend相關。jni nativeSetAutoSuspend->disableAutoSuspend中處理
PowerManagerService.Display:屏幕鎖,亮屏后持有,息屏則釋放。DisplayManagerInternal.DisplayPowerCallbacks中處理
PowerManagerService.WakeLocks:PMS(mWakeLockSuspendBlocker)持有阻止休眠
-
查看釋放的喚醒鎖:cat sys/power/wake_unlock
msm8953_64:/ # cat sys/power/wake_unlock ApmAudio ApmOutput CHG_PLCY_MAIN_WL IdleMaint KeyEvents PowerManagerService.Broadcasts cne_imsa_ind_handler_wl_ enablecrypto429 netmgr_wl qcril qcril_pre_client_init radio-interface rmt_storage_496693144912 rmt_storage_496710958416 rpmb_access_wakelock tftp_server_wakelock msm8953_64:/ #
-
查看是否自動休眠:cat sys/power/autosleep
msm8953_64:/ # cat sys/power/autosleep off msm8953_64:/ #
-
查看凍結進程的超時時間(ms):cat /sys/power/pm_freeze_timeout
msm8953_64:/ # cat /sys/power/pm_freeze_timeout 20000 msm8953_64:/ #
-
查看休眠/喚醒模式:cat /sys/power/pm_async
msm8953_64:/ # cat /sys/power/pm_async 1 msm8953_64:/ #
0:串行模式,速度慢 1:異步模式 ,速度較快
-
查看支持的休眠模式:cat /sys/power/state
msm8953_64:/ # cat /sys/power/state freeze mem msm8953_64:/ #
mem:掛起到內存(suspend-to-RAM),保留運行狀態
disk:掛起到磁盤(suspend-to-disk),完全斷電
standby:淺度休眠
freeze:僅凍結進程(無設備低功耗)
-
查看系統啟動以來喚醒次數:cat /sys/power/wakeup_count
-
查看喚醒源:cat /sys/kernel/debug/wakeup_sources
msm8953_64:/ # cat /sys/kernel/debug/wakeup_sources name active_count event_count wakeup_count expire_count active_since total_time max_time last_change prevent_suspend_time ipc00000267_8924_CAM_GYRO 0 0 0 0 0 0 0 2290390 0 ipc00000266_8924_CAM_GYRO 0 0 0 0 0 0 0 2290390 0 ipc00000265_8924_CAM_GYRO 0 0 0 0 0 0 0 2289397 0 PowerManagerService.Broadcasts 2 2 0 0 0 357 292 2287353 0 cne_imsa_ind_handler_wl_ 1 1 0 0 0 1001 1001 77372 0 ...... msm8953_64:/ #
字段 字段說明 name 喚醒源名稱(如設備驅動名) active_count 累計激活次數 event_count 觸發事件總數 wakeup_count 成功喚醒系統次數 active_since 最近激活時間戳(jiffies) total_time 總活躍時長(毫秒) max_time 單次最長活躍時間 active 當前是否處于活躍狀態(1/0) last_change 最后一次狀態變更時間