linux kernel timer expire处理机制

注册tick event handler为tick_handle_periodic,在每个系统tick到来时将回调此tick event handler:

clockevents_register_device
tick_check_new_device
tick_setup_device
tick_setup_periodic
tick_set_periodic_handler
static inline void tick_set_periodic_handler(struct clock_event_device *dev, int broadcast)
{
dev->event_handler = tick_handle_periodic;
}

每个tick到来回去处理timer部分的逻辑,检查timer是否expire,如果expire,执行timer回调

tick_handle_periodic
tick_periodic
update_process_times
run_local_timers

reference:

Linux时间子系统之(十二):periodic tick

http://www.wowotech.net/timer_subsystem/periodic-tick.html

Linux时间子系统之定时器层(Timer)

https://blog.csdn.net/Roland_Sun/article/details/105775145

 

posted @   aspirs  阅读(308)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
历史上的今天:
2020-05-22 Android ANR log trace日志文件分析
2020-05-22 ANR分析思路简析
2020-05-22 ANR traces中内存占用情况解读
点击右上角即可分享
微信分享提示