パッチ一覧にご使用のカーネルのバージョンに対応するパッチがない場合は、次のス クリプトを実行することで kmemprof を使用できるようにカーネルを修正できるかも しれません。
# tar zxfv kmemprof.tar.gz # cd kmemprof/patch # ruby patchkit-2.4.rb /usr/src/linux # linux-2.4.x # ruby patchkit-2.5.rb /usr/src/linux # linux-2.5.x |
モニタ結果あるいはプロファイリング結果を表示するためのユーザーコマンドは、 Ruby で書かれているためです。
i386 ユニプロセッサでしかテストしていません。 i386 以外のアーキテクチャでのコールグラフプロファイリングは、直接スラブアロ ケータを呼び出した関数しか記録しません。(それさえテストしていないので何とも 言えませんが..)
ダウンロードしたアーカイブの中の patch ディレクトリにあるパッチを適用します。 i386 アーキテクチャでコールグラフプロファイリングを行う場合は、Compile kernel with frame pointer(CONFIG_FRAME_POINTER) を有効にします。 そして、いつものようにコンパイルしてください。
# tar zxfv kmemprof.tar.gz # cd kmemprof # make # make install # ls modules kmemprof-cgprof.ko kmemprof-filter.ko kmemprof-freqctrl.ko kmemprof-objfilter.ko kmemprof-plug.ko kmemprof-trace.ko |
Note: 出来上がったカーネルモジュールの拡張子は 2.4 系なら `.o' です。