SO_TIMESTAMP for tsc不是timeval?

时间:2013-03-07 03:20:09

标签: linux sockets network-programming

socket man page可以看出,可以SO_TIMESTAMPsetsockopt一起使用 衡量Linux内核将接收到的网络数据包传递到用户空间所需的时间。

此处有一个关于此功能的详细说明:Measuring latency in the Linux network stack between kernel and user space

有没有办法在内核收到数据包时读取tsc而不是timeval

1 个答案:

答案 0 :(得分:1)

没有

  • 这是特定于平台的。
  • TSC可以改变某些(P4时代)处理器的频率,并且历史上没有在核心之间同步(一些现代CPU在同一个包中的核心之间同步)。
  • 理想情况下,您希望网卡能够为数据包加上时间戳; PTP通常需要这样才能达到目标准确度。

您可以合理要求的最多是struct timespec时基中的CLOCK_MONOTONIC。我认为它不存在,但添加起来并不会太难。