2014-01-06 74 views
5

是否有一個單調時鐘源供內核模塊使用,該模塊可以連接到線程,並且只有在關聯線程正在運行時纔會增加?內核中線程特定的單調時鐘源

我正在尋找一些能夠像perf API一樣工作的東西,除了測量到目前爲止所消耗的CPU時間總量(以納秒爲單位)而不是測量週期或指令。

在用戶空間中,您從librt獲得clock_gettime函數,您可以在其中指定CLOCK_PROCESS_CPUTIME_ID作爲獲取上述行爲的時鐘類型。查看source code of clock_gettime,此函數調用pthread庫中稱爲__pthread_clock_gettime的另一個函數。

我正在尋找類似的東西,可以從內核模塊在Linux內核中進行設置,並將其附加到任務,給出指向與該任務關聯的task_struct的指針。

+0

我不知道任何這樣子系統在Linux內核中。我相信你需要使用特定的定時器(用於你的架構)來實現你自己的版本,可能使用kprobes來測試上下文切換功能。 –

+0

謝謝。我結束了使用ktime_get和preempt_notifier機制。 –

+0

感謝分享,我不知道這個preempt_notifier機制。 –

回答