Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

29.5.3. モジュールでの詳細な出力の取得

OProfile は、マシンで実行しているカーネルおよびユーザー空間コードについてシステム全体のデータを収集します。ただし、モジュールがカーネルに読み込まれると、カーネルモジュールの元の情報が失われます。モジュールは、起動時に initrd ファイルから、さまざまなカーネルモジュールを含むディレクトリー、またはローカルに作成されたカーネルモジュールから送られる場合があります。その結果、OProfile がモジュールのサンプルを記録すると、root ディレクトリーで実行可能なモジュールのサンプルのみが一覧表示されますが、これはモジュールの実際のコードで配置される訳ではありません。分析ツールが実行ファイルを取得できるようにするには、いくつかの手順を実行する必要があります。
モジュールのアクションをより詳細に表示するには、モジュール「トリップ解除」(カスタムビルドからインストールされる)か、カーネル用に debuginfo パッケージをインストールする必要があります。
uname -a コマンドで実行しているカーネルを確認し、適切な debuginfo パッケージを取得し、これをマシンにインストールします。
次に、以下のコマンドで、直前の実行の例をクリアします。
~]# opcontrol --reset
Westmere プロセッサーを持つマシン上で監視プロセスを開始するには、以下のコマンドを実行します。
~]# opcontrol --setup --vmlinux=/usr/lib/debug/lib/modules/`uname -r`/vmlinux --event=CPU_CLK_UNHALTED:500000
次に、ext4 モジュールなどの詳細情報を以下のコマンドで取得できます。
~]# opreport /ext4 -l --image-path /lib/modules/`uname -r`/kernel
CPU: Intel Westmere microarchitecture, speed 2.667e+06 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (No unit mask) count 500000
warning: could not check that the binary file /lib/modules/2.6.32-191.el6.x86_64/kernel/fs/ext4/ext4.ko has not been modified since the profile was taken. Results may be inaccurate.
samples  %        symbol name
1622      9.8381  ext4_iget
1591      9.6500  ext4_find_entry
1231      7.4665  __ext4_get_inode_loc
783       4.7492  ext4_ext_get_blocks
752       4.5612  ext4_check_dir_entry
644       3.9061  ext4_mark_iloc_dirty
583       3.5361  ext4_get_blocks
583       3.5361  ext4_xattr_get
479       2.9053  ext4_htree_store_dirent
469       2.8447  ext4_get_group_desc
414       2.5111  ext4_dx_find_entry