2013-03-07 61 views
3

如可在socket man page中看到的那樣,可以使用SO_TIMESTAMPsetsockopt到 度量Linux內核將接收到的網絡包傳遞給用戶空間所花費的時間量。SO_TIMESTAMP for tsc not timeval?

這裏有一個很好的功能描述:Measuring latency in the Linux network stack between kernel and user space

在內核接收到數據包時,有什麼方法可以讀取tsc而不是timeval

+0

如果你拿了很多樣品,反正你會有亞美的準確度。 – 2013-03-07 08:58:07

回答

1

  • 這是特定於平臺的號。
  • TSC可以更改某些(P4時代)處理器的頻率,並且歷史上不會在內核之間同步(某些現代CPU在同一封裝中的內核之間同步它)。
  • 理想情況下,您希望數據包由網卡加蓋時間戳; PTP通常需要這樣才能達到其目標精度。

你可以合理地問的最多的是在CLOCK_MONOTONIC時基一struct timespec。我不認爲它存在,但添加並不難。