是否有一個單調時鐘源供內核模塊使用,該模塊可以連接到線程,並且只有在關聯線程正在運行時纔會增加?內核中線程特定的單調時鐘源
我正在尋找一些能夠像perf
API一樣工作的東西,除了測量到目前爲止所消耗的CPU時間總量(以納秒爲單位)而不是測量週期或指令。
在用戶空間中,您從librt
獲得clock_gettime
函數,您可以在其中指定CLOCK_PROCESS_CPUTIME_ID
作爲獲取上述行爲的時鐘類型。查看source code of clock_gettime
,此函數調用pthread
庫中稱爲__pthread_clock_gettime
的另一個函數。
我正在尋找類似的東西,可以從內核模塊在Linux內核中進行設置,並將其附加到任務,給出指向與該任務關聯的task_struct
的指針。
我不知道任何這樣子系統在Linux內核中。我相信你需要使用特定的定時器(用於你的架構)來實現你自己的版本,可能使用kprobes來測試上下文切換功能。 –
謝謝。我結束了使用ktime_get和preempt_notifier機制。 –
感謝分享,我不知道這個preempt_notifier機制。 –