免费注册 查看新帖 |

Chinaunix

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

[时钟管理] clocksource中的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-02-02 18:18 |只看该作者 |倒序浏览
static inline void clocksource_calculate_interval(struct clocksource *c,
                                                    unsigned long length_nsec)
{

        u64 tmp;
        /* XXX - All of this could use a whole lot of optimization */
        tmp = length_nsec;
       
        tmp <<= c->shift;
       
        tmp += c->mult/2;   /*  round for do_div  */
        do_div(tmp, c->mult);

        c->cycle_interval = (cycle_t)tmp;
       
        if (c->cycle_interval == 0)
              c->cycle_interval = 1;

        c->xtime_interval = (u64)c->cycle_interval * c->mult;  
}
其中c->xtime_interval 和c->cycle_interval 到底表示什么意思,为什么要这么算呢????????各位大神,纠结了好几天了,猫头鹰大神帮帮忙呀

论坛徽章:
0
2 [报告]
发表于 2015-02-02 18:35 |只看该作者
大神们,帮帮俺这个新手吧

论坛徽章:
46
2015小元宵徽章
日期:2015-03-06 15:58:18羊年新春福章
日期:2015-04-14 10:37:422015年亚洲杯之阿曼
日期:2015-04-14 10:41:50NBA常规赛纪念章
日期:2015-05-04 22:32:03NBA季后赛大富翁
日期:2015-05-04 22:34:11菠菜明灯
日期:2015-05-04 22:35:49新奥尔良黄蜂
日期:2015-05-04 22:49:2315-16赛季CBA联赛之广夏
日期:2015-12-11 15:02:342015年亚洲杯之巴勒斯坦
日期:2015-03-04 19:56:562015年亚洲杯之阿联酋
日期:2015-03-04 11:19:04休斯顿火箭
日期:2015-03-02 16:32:11纽约尼克斯
日期:2015-03-02 16:09:04
3 [报告]
发表于 2015-02-02 18:42 |只看该作者
我的版本和你的不一样,说的不一定对
xtime_interval单位是纳秒数,表示两次读取clocksource的间隔
c->cycle_interval 是两次读取clocksouce的时间差,但是单位是滴答数(相当于时钟设备走过了多少个计数)

xtimer_interval根据c->cycle_interval 来计算

按照人们正常的逻辑是计算xtimer_interval=c->cycle_interval/频率,这里就用到了除法
mult和shift是内核为了避免除法而采取的优化方式

具体的shift和mult初始化时怎么设置好,我也没细看过

论坛徽章:
46
2015小元宵徽章
日期:2015-03-06 15:58:18羊年新春福章
日期:2015-04-14 10:37:422015年亚洲杯之阿曼
日期:2015-04-14 10:41:50NBA常规赛纪念章
日期:2015-05-04 22:32:03NBA季后赛大富翁
日期:2015-05-04 22:34:11菠菜明灯
日期:2015-05-04 22:35:49新奥尔良黄蜂
日期:2015-05-04 22:49:2315-16赛季CBA联赛之广夏
日期:2015-12-11 15:02:342015年亚洲杯之巴勒斯坦
日期:2015-03-04 19:56:562015年亚洲杯之阿联酋
日期:2015-03-04 11:19:04休斯顿火箭
日期:2015-03-02 16:32:11纽约尼克斯
日期:2015-03-02 16:09:04
4 [报告]
发表于 2015-02-02 18:43 |只看该作者
最后还得找猫头鹰看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP