免费注册 查看新帖 |

Chinaunix

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

do_gettimeofday 读取的时间tv_usec总是0【已解决】 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-08-17 17:05 |只看该作者 |倒序浏览
本帖最后由 guozan523 于 2010-08-17 19:30 编辑

在内核中添加代码,测试一些设备的初始化时间
但是do_gettimeofday函数读取的时间,tv_usec部分总是0
比如:对init/main.c中的start_kernel()函数中的console_init()部分测量,这次是两处,曾经在4处进行测量,结果四处的时间都是一样,当然秒一样可以理解,但tv_usec部分全是0
  
注:start 和 end都是struct timeval类型,内核版本2.6.33.3,cpu是core 2,内核编译时把HPET Timer support编入了内核,其它部分不清楚哪些和这个问题有关,暂时没列出
  
do_gettimeofday(&start);
console_init();
do_gettimeofday(&end);
printk(KERN_DEBUG "whoisyourdaddy: The time used for console init is %ld, start time is %ld s %ld us, end time is %ld s %ld us\n", (start.tv_sec - end.tv_sec) * 1000000 + start.tv_usec - end.tv_usec, start.tv_sec, start.tv_usec, end.tv_sec, end.tv_usec);
  
从dmesg中读取的结果是
whoisyourdaddy: The time used for console init is 0, start time is 1282062076 s 0 us, end time is 1282062076 s 0 us

谢谢

论坛徽章:
0
2 [报告]
发表于 2010-08-17 19:30 |只看该作者
已解决,原来不是每次都是0
在函数了设置了10多个打印点,结果有些不是0,不过是199,699,13999之类的
有可能是console_init太快了,没有到1微秒,或者do_gettimeofday的问题,999和0结尾比较多,有空再接着研究
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP