2011-07-14 12 views
0

私のシステム内のプロセスによってpull_task()が呼び出された回数を数えようとしています。 pull_task()は、タスクを使用中のCPUの実行キューからアイドル状態のCPUの実行キューに移動するスケジューリング関数です。 これを見つけるための簡単なメカニズム(perf topを含む)が見つかりませんでした。プロセスを実行するためのpull_task()の呼び出しをトレースします

システムに移行と呼ばれるルートプロセスがありますが、私はこのプロセスがpull_task()を呼び出す責任を負うことがあります。しかし、このプロセスにstraceを付けることもできません。次のエラーがスローされます。

attach:ptrace(PTRACE_ATTACH、...):操作が許可されていません。

「マイグレーション」プロセスの優先度はリアルタイムです。おそらくそれがstraceがそれに付くことができない理由です。

よろしくお願いします。ありがとう。

答えて

2

あなたはFtraceを見る必要があります。これにより、あなたのシステムで発生しているすべてのカーネル関数呼び出しのリストが表示されます。

猫/ SYS /カーネル/デバッグ/トレース/トレースによるので...

echo function > /sys/kernel/debug/tracing/current_tracer 

ビューなどの機能トレーサーをオンにし、トレース

これらの記事は助ける必要があります。

Debugging with Ftrace part one

Debugging with Ftrace part two

関連する問題