Linux Collaboration Summit 2nd Day
2日目は技術セッションだ。アジェンダを参照のこと(http://events.linuxfoundation.org/events/collaboration-summit/agenda)
KernelShark
trace-cmdのフロントエンドのKernelSharkの紹介だった。グラフィカルにトレースデータを表示、分析する機能を持つ。
感想:trace-cmdの機能もどんどん充実していっているが、それにもまして、GUIでそのデータを表示、分析を支援するKernelSharkの機能はたいしたものだと思った。
dynamic tracing
日立の平松さんの講演である。2.6.33で導入されたperf toolの紹介である。
Linuxカーネルのイベントトレース機能は、(1)あらかじめ定義された固定的なイベント、(2)ハードウェアイベント、(3)動的に追加できるイベントがある。従来は(1)および(2)が主流であったが、kprobeの導入により(3)の機能が充実してきた。
kprobeは、ftraceやperf toolsによって利用される要素技術である。perf toolsは、カーネルデバッグ情報を利用して、シンボリックにトレース情報を設定できる。
感想:ダイナミックトレース技術はkprobeの実装によって使えるようになったが、それを使いこなすには、カーネルのデバッグシンボル情報から、プローブを当てる場所を特定し、複雑(?)なドライバを書かないとカーネル情報を入手することは難しかった。今回紹介された、perf toolsを使えば、簡単にカーネルの任意の場所にプローブを設定し、各種情報を入手できる。
dtraceとの機能的な差分なども気になるところであるが、開発のスピードが速いので、早晩キャッチアップするのではないかと思った。
. get the latest -tip tree
. menuconfig
...kernel hacking
....CONFIG_FTRACE=y
.....CONFIG_KPROBE_EVENT=y
See Documentation/trace/kprobetrace.txt