Linux 那么,tsc的时间戳不是timeval?
从中可以看出,可以使用Linux 那么,tsc的时间戳不是timeval?,linux,sockets,network-programming,Linux,Sockets,Network Programming,从中可以看出,可以使用SO_TIMESTAMP和setsockopt来 测量Linux内核将接收到的网络数据包转交给用户空间所需的时间 这里对该功能有很好的描述: 在内核收到数据包时,有没有办法读取tsc而不是timeval 它是特定于平台的 TSC可以在某些(P4时代)处理器上更改频率,并且在历史上没有在内核之间进行同步(一些现代CPU在同一封装中的内核之间进行同步) 理想情况下,您希望数据包无论如何都由网卡加上时间戳;通常需要这样才能达到其目标精度 最合理的要求是CLOCK\u MONO
SO_TIMESTAMP
和setsockopt
来
测量Linux内核将接收到的网络数据包转交给用户空间所需的时间
这里对该功能有很好的描述:
在内核收到数据包时,有没有办法读取tsc
而不是timeval
- 它是特定于平台的
- TSC可以在某些(P4时代)处理器上更改频率,并且在历史上没有在内核之间进行同步(一些现代CPU在同一封装中的内核之间进行同步)
- 理想情况下,您希望数据包无论如何都由网卡加上时间戳;通常需要这样才能达到其目标精度
最合理的要求是
CLOCK\u MONOTONIC
时基中的struct timespec
。我认为它不存在,但添加起来也不太困难。如果您采集了很多样本,您的准确度将低于美国标准。