首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内核空间和用户空间中的时间不同

内核空间和用户空间中的时间不同
EN

Stack Overflow用户
提问于 2011-06-30 16:32:44
回答 1查看 4K关注 0票数 3

我需要在kernl-space和user-space (通过netlink消息)之间交换一个struct timeval,以便计算在用户空间中创建消息和细化之间所经过的时间。我在内核空间中使用函数jiffies_to_timeval;在用户空间中,我调用gettimeofday...but,如果我打印两个结构的秒数,我会得到200秒的差异……我找不出原因。

有什么想法吗?

谢谢大家!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-30 17:00:12

这里有several clocks inside of Linux。这些差异归根结底在于它们是否在机器挂起时滴答作响,它们是否试图跟踪“挂钟时间”,以及它们的分辨率有多高。

您可能不想使用do_gettimeofday,因为该时钟试图跟踪“挂钟时间”;也就是说,它实际上可以向前或向后跳跃。如果有人--或者某些东西(比如NTP) --决定将系统时钟设置在您读取它的两次之间,该怎么办?

对于计时,我建议使用带有CLOCK_MONOTONIC时钟ID的POSIX clock_gettime函数(不过,您可能必须使用-lrt编译您的用户空间应用程序)。

我相信clock_gettime也是作为一个内核函数存在的,尽管目前我手头没有我的内核源代码……

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6532088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档