2011年06月14日

KZM-A9-Dualボードのkernel 2.6.29でftraceを試す(ビルド編)

FtraceというLinuxカーネルのトレース機能があります。KZM-A9-Dualボードでこれが使えるか試してみました。



2.6.29のカーネルで試しています。

Kernelのコンフィグ

make menuconfigで

Kernel hacking > Tracers > kernel Function Tracer

これでビルドするとエラーになってしまいました。

undefined reference to '__gnu_mcont_nc'

パッチをあてる

elinux.orgにパッチがあるのをみつけました。

Support-ftrace-with-newer-compilers.patchをダウンロードして

$ patch -p1 < ~/Support-ftrace-with-newer-compilers.patch

これでビルドが通るようになりました。

さらにこのページにあるAdd-ARM-function-duration-tracer-2.6.29.tgzとGnu_mcount_nc-func_graph.patchをダウンロードして適用します。

このアーカイブでは複数のpatchがquiltというコマンドで管理されているので、まずそのコマンドをインストールします。

$ sudo apt-get install quilt

カーネルのソースディレクトリでアーカイブを開きます。patchesというディレクリにpatchのファイルがあり、それらの適用順序はseriesというファイルに書かれています。

$ tar xvf ~/Add-ARM-function-duration-tracer-2.6.29.tgz
$ quilt push -a
$ patch -p1 < ~/Gnu_mcount_nc-func_graph.patch

実行例

これでビルドして試しました。function_graphも使えるようになっています。

# tracer: function_graph
#
# CPU  DURATION                  FUNCTION CALLS
# |     |   |                     |   |   |   |
 0)   0.000 us    |                      }
 0)               |                      __napi_complete() {
 0)   0.000 us    |                        l2x0_cache_sync();
 0)   0.000 us    |                      }
 0)   0.000 us    |                    }
 0)   0.000 us    |                  }
 0)   0.000 us    |                }
 0)   0.000 us    |                _local_bh_enable();
 0)   0.000 us    |              }
 0)   0.000 us    |              idle_cpu();
 0)   0.000 us    |            }
 0)   0.000 us    |          }
 0)               |          preempt_schedule_irq() {
 0)               |            schedule() {
 0)               |              put_prev_task_fair() {
 0)   0.000 us    |                update_curr();
 0)   0.000 us    |                __enqueue_entity();
 0)   0.000 us    |              }

ただし、SMPだと不安定だったので、SMPはオフにしました。trace-cmdもうまく動かなかったので、ftraceの操作はdebugfsを使って行います。

ftraceの使い方についてはELC2010でのこのスライドが参考になります。

ELC2010のスライド Ftrace - embedded edition (ODP file)



トラックバックURL

コメントする

名前
URL
 
  絵文字
 
 
記事検索
最新コメント
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

QRコード
QRコード