gpt4 book ai didi

linux - 内核空间和用户空间中的时间差异

转载 作者:可可西里 更新时间:2023-11-01 11:50:37 25 4
gpt4 key购买 nike

我需要在内核空间和用户空间之间交换一个 struct timeval(通过 netlink 消息),以便计算从创建消息到在用户空间中进行细化之间耗时。我在内核空间中使用函数 jiffies_to_timeval;在用户空间中,我调用 gettimeofday...但是如果我打印两个结构的秒数,我会得到 200 秒的差异...我无法找出原因。

有什么想法吗?

谢谢大家!

最佳答案

several clocks inside of Linux .差异归结为它们是否在机器暂停时滴答作响、它们是否尝试跟踪“挂钟时间”以及它们的分辨率有多高。

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

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

我相信 clock_gettime 也作为内核函数存在,尽管我现在手边没有内核源代码...

关于linux - 内核空间和用户空间中的时间差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6532088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com