赞
踩
目录
在Linux kernel中,autosleep是睡眠流程的触发点和入口点,pm core的睡眠流程入口pm_suspend函数就是被autosleep的睡眠工作队列调用而进入睡眠的。该套机制由Rafael J. Wysocki在2012年合入到Kernel主干,从此之后便一直作为Linux kernel低功耗睡眠的触发入口机制存在。在本章节我们会对该套机制做实现上的分析,并借鉴该机制实现我们自己定制化的autosleep机制。
1)特性功能受宏CONFIG_PM_AUTOSLEEP控制,需要打开该特性的话,CONFIG_PM_AUTOSLEEP必须设置为y。
2)相关实现在kernel\power\autosleep.c文件中
3)通过写"mem, disk, standby, freeze"到/sys/power/autosleep可以开启autosleep。
4)通过写"off"到/sys/power/autosleep就可以关闭autosleep。
1)函数说明
函数原型 |
|
int __init pm_autosleep_init(void) |
|
描述 |
|
1、创建autosleep流程中投票睡眠的睡眠锁autosleep_ws 2、创建睡眠工作队列autosleep_wq |
|
参数 |
|
无 |
|
返回值 |
|
0 |
初始化成功 |
其他 |
初始化失败 |
2)函数实现
其中autosleep_ws和autosleep_wq都是定义的全局变量,方便在本文件其他函数中调用。
<Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。