免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1636 | 回复: 3
打印 上一主题 下一主题

[时钟管理] 动态时钟的疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-10-14 14:31 |只看该作者 |倒序浏览
本帖最后由 我爱芒果叶 于 2013-10-14 14:33 编辑

在进入动态时钟后,重启周期时钟的最后需要对下一个时钟事件编程。这是必要的,因为外部中断的存在,可能导致空闲时间的结束早于预期。
蓝色字体部分是《深入Linux内核架构》中的内容。
我的理解是,在开启动态时钟时,已经对下一个时钟事件编程,即使中断在下一个时钟事件前发生了,之前编程好的时钟事件应该也是会正确发生,没必要再对下一个时钟事件编程。
请指点迷津。

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
2 [报告]
发表于 2013-10-14 16:22 |只看该作者
回复 1# 我爱芒果叶
在进入动态时钟后,重启周期时钟的最后需要对下一个时钟事件编程。这是必要的,因为外部中断的存在,可能导致空闲时间的结束早于预期。
蓝色字体部分是《深入Linux内核架构》中的内容。
我的理解是,在开启动态时钟时,已经对下一个时钟事件编程,即使中断在下一个时钟事件前发生了,之前编程好的时钟事件应该也是会正确发生,没必要再对下一个时钟事件编程。
请指点迷津


tick_nohz_stop的时候,设置的下一个时钟时间可能是在多个tick之后;而现在restart后,需要每个tick都必须有事件,所有需要重新编程。

比如:

time=1  tick 正常工作
time=2  进入idle状态,并且最新的时钟时间在time=10的时候,所以tick_nohz_stop,并且设置时钟事件在8个tick后,也就是time=10的时候
time=3  idle
time=4  idle
time=5  被中断打断,tick_nohz_restart。这个时候为正常状态,每个tick后都需要有时钟事件,所有需要设置时钟时间在1个tick后,也就是time=6的时候
time=6 tick正常工作。。。

   

论坛徽章:
0
3 [报告]
发表于 2013-10-14 16:56 |只看该作者
本帖最后由 我爱芒果叶 于 2013-10-24 14:07 编辑

回复 2# 瀚海书香


    谢谢版主,恍然大悟。

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
4 [报告]
发表于 2013-10-14 17:09 |只看该作者
回复 1# 我爱芒果叶
这里说的对下一个“时钟事件”编程,并不是重设下一个到期的定时器,而是指“时钟中断”定时器的到期时间,因为在中断事件触发后,需要重新启动“时钟”机制,而下一个“时钟中断”到期时间,是在停止周期时钟时(进入cpu_idle的时候)就已经算好并设置好了(tick_nohz_stop_sched_tick函数中),如果因为在idle期间有其它中断发生导致周期时钟提前被启用,那么当然需要重设下一个“时钟事件”的到期时间,否则从中断唤醒到内核预期的唤醒时间(下一个到期定时器,对于内核来说是已知的)之前,就没有时钟中断了。



   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP