免费注册 查看新帖 |

Chinaunix

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

hrtimer(高精度时间处理)--欢迎讨论交流 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-22 23:20 |只看该作者 |倒序浏览
内核的时间系统,还是比较有意思的.上次写过cfs后,便看了hrtimer部分,一直没抽出时间来整理,现在还有一些不太明白的地方,我准备开这个帖子,和大家多聊聊,聊完了,我再做个总结...毕竟,一个人的思维局限性很大,呵呵

我的理解肯定有许多错误的地方,欢迎大家指正,交流....

今晚只简单说说,我会在后面详细总结出内核时间系统的建立和运行机制,并将学习过程中收集的资料,与大家分享.


1) 采用hrtimer resolution的kernel,在硬件支持的情况下,可以提供精度更高的定时器

2) 没有那么高精度的硬件kernel怎么办呢?  hrtimer 系统会建立一个hrtimer,模拟之前的tick机制..说白了,就是往硬件的timer寄存器写下一个tick的值,模拟出tick中断来.

1)的精度,就是硬件的时钟精度,,软件支持最高是1ns,大约1Ghz就行了...如果比1g还高,我的理解是kernel目前不支持.
也就是说,如果你的hardware support 1ghz,你可以设定一个1ns的定时器....不能再低了.

2)的精度就不一样了,它是hz.在每个hz的处理函数里,会处理那些过期的hrtimer.

1)的处理函数是hrtimer_interrupt(),
我的kernel打开了CONFIG_NOHZ,这样2)的处理函数是tick_nohz_handler().

[ 本帖最后由 wxc200 于 2009-4-26 17:29 编辑 ]

内核的时间系统.pdf

428.93 KB, 下载次数: 1967

论坛徽章:
0
2 [报告]
发表于 2009-04-23 12:15 |只看该作者

回复 #1 wxc200 的帖子

帖子变成红色了,好看   谢谢  
为方便大家阅读,把调试信息删除

[ 本帖最后由 wxc200 于 2009-4-26 17:25 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-04-25 16:55 |只看该作者

回复 #1 wxc200 的帖子

一楼提供pdf格式文档下载

[ 本帖最后由 wxc200 于 2009-4-26 17:25 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-05-04 11:53 |只看该作者

回复 #1 wxc200 的帖子

文中提到提到过期hrtimer的执行方式变为了hard irq,这个patch在这儿.

http://groups.google.com/group/l ... 1dcf9f11322ee?hl=en

目前正在研究 patch的细节,感兴趣得一起看看吧  

论坛徽章:
16
2015亚冠之吉达阿赫利
日期:2015-08-17 11:21:462015年迎新春徽章
日期:2015-03-04 09:58:11酉鸡
日期:2014-12-07 09:06:19水瓶座
日期:2014-11-04 14:23:29天秤座
日期:2014-03-02 08:57:52双鱼座
日期:2014-02-22 13:07:56午马
日期:2014-02-14 11:08:18双鱼座
日期:2014-02-13 11:09:37卯兔
日期:2014-02-06 15:10:34子鼠
日期:2014-01-20 14:48:19戌狗
日期:2013-12-19 09:37:46射手座
日期:2013-12-19 09:33:47
5 [报告]
发表于 2011-10-09 15:47 |只看该作者
回复 4# wxc200


    看来是老师研究太深,大家跟不上了!

论坛徽章:
0
6 [报告]
发表于 2011-10-09 18:16 |只看该作者
本帖最后由 ruslin 于 2011-10-09 18:24 编辑

抛砖引玉一下,最近写的笔记都拿上来共享一下。希望能和志同道同志一起研究研究。

linux-time-subsystem.rar

33.85 KB, 下载次数: 208

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2011-10-09 19:37 |只看该作者
我也弄过一阵,呵呵.

论坛徽章:
16
2015亚冠之吉达阿赫利
日期:2015-08-17 11:21:462015年迎新春徽章
日期:2015-03-04 09:58:11酉鸡
日期:2014-12-07 09:06:19水瓶座
日期:2014-11-04 14:23:29天秤座
日期:2014-03-02 08:57:52双鱼座
日期:2014-02-22 13:07:56午马
日期:2014-02-14 11:08:18双鱼座
日期:2014-02-13 11:09:37卯兔
日期:2014-02-06 15:10:34子鼠
日期:2014-01-20 14:48:19戌狗
日期:2013-12-19 09:37:46射手座
日期:2013-12-19 09:33:47
8 [报告]
发表于 2011-10-09 20:02 |只看该作者
感谢大家分享,大家有什么时间系统的心得传上来,互相学习,团队是学习的最佳单位!

论坛徽章:
0
9 [报告]
发表于 2011-10-09 21:43 |只看该作者
用TSC不可以么?利用的CPU的时钟频率,现在cpu频率都超G了。
不过更新时间时让时钟周期拖后腿了,它每1滴答才更新一次。

论坛徽章:
0
10 [报告]
发表于 2011-10-10 08:55 |只看该作者
回复 9# wangzhen11aaa


你具体想说用什么?
目前内核通过hrtimer模拟HZ,每10ms(100HZ)一次更新jiffies等普通信息,足够用了。
对于进程调度来说,也是通过hrtimer来驱动的(某个进程想要执行多久,就设置多长时间的每cpu的调度hrtimer定时器),足够精确了。
以我来看,内核时间系统现在已经很完善了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP