2014-01-06 5 views
5

カーネルモジュールがスレッドに接続できる単調クロックソースはありますか?関連スレッドが実行されている場合にのみ増加しますか?カーネル内のスレッド固有の単調クロックソース

perf APIのように動作するものを探していますが、サイクルや命令を測定するのではなく、これまでに費やされたCPU時間の合計をナノ秒単位で測定します。

ユーザー空間ではlibrtclock_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メカニズムについて知らなかった。 –

答えて