clock_gettime的来源

时间:2017-07-20 07:18:08

标签: linux time linux-kernel

我试图通过查看linux内核的源代码来理解函数clock_gettime的行为。 我目前正在使用4.4.0-83-lowlatency,但我只能获取4.4.76源文件(但它应该足够接近)。

我的第一个问题是该函数有几次出现。我选择的pc_clock_gettime似乎是最近的,也是唯一一个处理CLOCK_MONOTONIC_RAW的人,但如果我错了,请纠正我。

我追踪了该函数的执行流程,并找到了与以太网驱动程序相关的神秘ravb_ptp_gettime64ravb_ptp_time_read

那么......当我要求系统给我时间时,如果我理解正确,它会询问以太网驱动程序吗?

这是我第一次查看内核代码,所以我不习惯它。如果有人能给我一个“如何”和“为什么”的解释,那就太棒了。

1 个答案:

答案 0 :(得分:0)

"workbench.colorCustomizations": { "editor.lineHighlightBackground": "#ff0000", } 使用一种名为vDSO的机制(虚拟动态共享对象)。这是一个共享库,由内核在用户空间中映射。

vDSO允许频繁使用clock_gettime,而不会降低性能。因此,内核将时间信息“投入”到用户程序可以访问的内存中。最后,它不会是系统调用,而只是一个简单的函数调用。