摘要: 从kernel角度看,系统是否进入休眠应该由内核来控制,因此Linux引入了 wakeup source以及autosleep机制 关于wakeup source的介绍,请参考: Wakeup Source框架设计与实现 关于autosleep机制,请参考:autosleep框架设计与实现 在内核中 阅读全文
posted @ 2024-07-27 17:51 Jayfan_Ma 阅读(135) 评论(0) 推荐(0) 编辑
摘要: Wakelocks 框架是基于Wakeup Source实现的为Android系统上层提供投票机制,以阻止系统进入休眠。 1.功能说明 该模块的支持受宏CONFIG_PM_WAKELOCKS控制。在使能该宏的情况下,PM Core初始化过程中会在sysfs下创建两个属性节点: /sys/power/ 阅读全文
posted @ 2024-06-22 16:08 Jayfan_Ma 阅读(124) 评论(1) 推荐(1) 编辑
摘要: 在低功耗系统中,autosleep是一个较小的模块,是低功耗主流程的入口。在Linux内核中,autosleep是休眠流程的触发点和入口点,PM Core的休眠流程入口pm_suspend()就是被autosleep的睡眠工作队列调用而进入休眠的。 该功能的支持受宏CONFIG_PM_AUTOSLE 阅读全文
posted @ 2024-06-10 14:35 Jayfan_Ma 阅读(37) 评论(0) 推荐(0) 编辑
摘要: Wakeup Source 为系统组件提供了投票机制,以便低功耗子系统判断当前是否可以进入休眠。 Wakeup Source(后简称:WS) 模块可与内核中的其他模块或者上层服务交互,并最终体现在对睡眠锁的控制上。 注:本文是基于内核kernel-5.10展开,分析基于32位系统,若是64位系统,则 阅读全文
posted @ 2024-06-06 22:40 Jayfan_Ma 阅读(343) 评论(0) 推荐(0) 编辑