Linux suspend流程

 1.各种suspend状态及其对应关系和执行动作:

suspend各状态宏宏值pm_labels
/sys/power/state
mem_sleep_labels
/sys/power/mem_sleep
各状态待机动作
PM_SUSPEND_ON0   
PM_SUSPEND_TO_IDLE1freezes2idlbe1.停止用户空间程序运行
2.所有外设备设置低功耗状态
PM_SUSPEND_STANDBY2standbyshallow3.disable非唤醒和被触发的中断
4.disable非引导CUP
5.执行sys级别待机
PM_SUSPEND_MEM3memdeep
6.memory供电模式调整
PM_SUSPEND_MAX        4diskdisk7.保存系统快照写入磁盘
8.memory掉电

 2.suspend流程图(主要流程)

suspend过程主要分为5个阶段:suspend_freeze -> suspend_prepare -> suspend_suspend -> suspend_late -> suspend_noirq ,5各阶段顺序递进执行;后4个阶段主要是设备的待机过程,每个阶段都有对应的待机函数。

   a.suspend_freeze:主要在于冻结用户和内核进程;

   b.suspend_prepare:调用各设备prepare函数,为设备执行suspend函数进入supend函数做准备;

   c. suspend_suspend:调用各设备suspend函数使设备进入suspend状态;

   d.suspend_late:在suspend函数后执行,主要调用各设备suspend_late函数

   e.suspend_noirq:该阶段时会关所有非唤醒中断,然后调用各设备的suspend_noirq函数。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值