操作系统:android 9.0.0_1.0.0
处理器:IMX8MQ
问题:android深度休眠后CPU小系统功耗太大,功耗为3.3V*260mA,这个还有办法再降吗?在这个版本上系统休眠后能否关掉更多的clk?系统休眠后CPU的四个核都是UP状态,能关掉几个核吗?要怎么操作?我的目标是在系统休眠时功耗降到3.3V*100mA以下。
系统休眠的log如下:
[ 49.693516] mma enable setting standby
[ 50.798836] PM: suspend entry (deep)
[ 50.802686] PM: Syncing filesystems ... done.
[ 50.817807] Freezing user space processes ... (elapsed 0.002 seconds) done.
[ 50.827335] OOM killer disabled.
[ 50.830579] Freezing remaining freezable tasks ... (elapsed 0.063 seconds) done.
[ 50.901360] Suspending console(s) (use no_console_suspend to debug)
[ 50.915455] android_work: did not send uevent (0 0 (null))
[ 51.625036] PM: Wakeup pending, aborting suspend
[ 51.625054] PM: Some devices failed to suspend, or early wake event detected
[ 51.751446] PM: resume devices took 0.128 seconds
[ 51.774240] OOM killer enabled.
[ 51.777382] Restarting tasks ... done.
[ 51.785352] hantro receive hot notification event: 0
[ 51.805683] PM: suspend exit
[ 52.008915] PM: suspend entry (deep)
[ 52.012522] PM: Syncing filesystems ... done.
[ 52.175809] Freezing user space processes ... (elapsed 0.002 seconds) done.
[ 52.185014] OOM killer disabled.
[ 52.188273] Freezing remaining freezable tasks ... (elapsed 0.016 seconds) done.
[ 52.212777] Suspending console(s) (use no_console_suspend to debug)
[ 52.225701] android_work: did not send uevent (0 0 (null))
[ 52.938761] PM: suspend devices took 0.720 seconds
[ 52.942213] Disabling non-boot CPUs ...
[ 52.961548] CPU0: update max cpu_capacity 1024
[ 52.965556] CPU1: shutdown
[ 52.965560] psci: CPU1 killed.
[ 52.985548] CPU0: update max cpu_capacity 1024
[ 52.989544] CPU2: shutdown
[ 52.989547] psci: CPU2 killed.
[ 53.005986] IRQ 6: no longer affine to CPU3
[ 53.013542] CPU3: shutdown
[ 53.013546] psci: CPU3 killed.
[ 53.013912] Enabling non-boot CPUs ...
[ 53.014568] Detected VIPT I-cache on CPU1
[ 53.014594] GICv3: CPU1: found redistributor 1 region 0:0x00000000388a0000
[ 53.014645] CPU1: Booted secondary processor [410fd034]
[ 53.015116] cache: parent cpu1 should not be sleeping
[ 53.015392] CPU1 is up
[ 53.016087] Detected VIPT I-cache on CPU2
[ 53.016104] GICv3: CPU2: found redistributor 2 region 0:0x00000000388c0000
[ 53.016140] CPU2: Booted secondary processor [410fd034]
[ 53.016493] cache: parent cpu2 should not be sleeping
[ 53.016746] CPU2 is up
[ 53.017368] Detected VIPT I-cache on CPU3
[ 53.017388] GICv3: CPU3: found redistributor 3 region 0:0x00000000388e0000
[ 53.017424] CPU3: Booted secondary processor [410fd034]
[ 53.017703] CPU0: update max cpu_capacity 1024
[ 53.017821] cache: parent cpu3 should not be sleeping
[ 53.018110] CPU3 is up
[ 53.021501] CPU1: update max cpu_capacity 1024
[ 53.151583] PM: resume devices took 0.128 seconds
[ 53.287895] OOM killer enabled.
[ 53.291103] Restarting tasks ... done.
[ 53.301285] hantro receive hot notification event: 0
[ 53.350175] PM: suspend exit
[ 53.566635] PM: suspend entry (deep)
[ 53.570287] PM: Syncing filesystems ... done.
[ 53.761257] Freezing user space processes ... (elapsed 0.002 seconds) done.
[ 53.770619] OOM killer disabled.
[ 53.773926] Freezing remaining freezable tasks ... (elapsed 0.028 seconds) done.
[ 53.809799] Suspending console(s) (use no_console_suspend to debug)
[ 53.823884] android_work: did not send uevent (0 0 (null))
[ 54.534774] PM: suspend devices took 0.720 seconds
[ 54.537551] Disabling non-boot CPUs ...
[ 54.554195] IRQ 6: no longer affine to CPU1
[ 54.557508] CPU0: update max cpu_capacity 1024
[ 54.561504] CPU1: shutdown
[ 54.561508] psci: CPU1 killed.
[ 54.581507] CPU0: update max cpu_capacity 1024
[ 54.585503] CPU2: shutdown
[ 54.585506] psci: CPU2 killed.
[ 54.609502] CPU3: shutdown
[ 54.609505] psci: CPU3 killed.
[ 54.609805] Enabling non-boot CPUs ...
[ 54.610439] Detected VIPT I-cache on CPU1
[ 54.610464] GICv3: CPU1: found redistributor 1 region 0:0x00000000388a0000
[ 54.610515] CPU1: Booted secondary processor [410fd034]
[ 54.610987] cache: parent cpu1 should not be sleeping
[ 54.611263] CPU1 is up
[ 54.612018] Detected VIPT I-cache on CPU2
[ 54.612036] GICv3: CPU2: found redistributor 2 region 0:0x00000000388c0000
[ 54.612071] CPU2: Booted secondary processor [410fd034]
[ 54.612422] cache: parent cpu2 should not be sleeping
[ 54.612676] CPU2 is up
[ 54.613391] Detected VIPT I-cache on CPU3
[ 54.613411] GICv3: CPU3: found redistributor 3 region 0:0x00000000388e0000
[ 54.613447] CPU3: Booted secondary processor [410fd034]
[ 54.613472] CPU2: update max cpu_capacity 1024
[ 54.613852] cache: parent cpu3 should not be sleeping
[ 54.614125] CPU3 is up
[ 54.617458] CPU2: update max cpu_capacity 1024
[ 54.746145] PM: resume devices took 0.128 seconds
[ 54.880073] OOM killer enabled.
[ 54.883223] Restarting tasks ... done.
[ 54.889032] hantro receive hot notification event: 0
[ 54.948747] PM: suspend exit
[ 55.163594] PM: suspend entry (deep)
[ 55.168534] PM: Syncing filesystems ... done.
[ 55.290189] Freezing user space processes ... (elapsed 0.002 seconds) done.
[ 55.299911] OOM killer disabled.
[ 55.303221] Freezing remaining freezable tasks ... (elapsed 0.008 seconds) done.
[ 55.319256] Suspending console(s) (use no_console_suspend to debug)
[ 55.333632] android_work: did not send uevent (0 0 (null))
[ 55.338372] dpm_run_callback(): platform_pm_suspend+0x0/0x50 returns -16
[ 55.338376] PM: Device alarmtimer failed to suspend: error -16
[ 55.455550] PM: Some devices failed to suspend, or early wake event detected
[ 55.515432] PM: resume devices took 0.060 seconds
[ 55.546336] OOM killer enabled.
[ 55.549552] Restarting tasks ... done.
[ 55.555233] hantro receive hot notification event: 0
[ 55.637116] PM: suspend exit
[ 57.350096] PM: suspend entry (deep)
[ 57.353758] PM: Syncing filesystems ... done.
[ 57.495695] Freezing user space processes ... (elapsed 0.002 seconds) done.
[ 57.504779] OOM killer disabled.
[ 57.508020] Freezing remaining freezable tasks ... (elapsed 0.060 seconds) done.
[ 57.575528] Suspending console(s) (use no_console_suspend to debug)
Please refer to AN https://www.nxp.com/docs/en/nxp/application-notes/AN12118.pdf