ftraceを有効にするため、下記のカーネルコンフィグを有効にします。
Kernel hacking --->
[*] Tracers --->
[*] Kernel Function Tracer
[*] Trace syscalls
【ftrace有効か確認】→【カーネルコンフィグ】→【カーネルコンパイル、インストール】→【確認】
【ftrace有効か確認】
・debugfsをマウント。
# mount -t debugfs nodev /sys/kernel/debug
・ftraceが有効か確認。※functionが入っていないとftrace無効。
# cat /sys/kernel/debug/tracing/available_tracers
blk kmemtrace wakeup_rt wakeup sysprof sched_switch initcall nop
【カーネルコンフィグ】
・ソースダウンロード
# wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.tar.gz
・展開
# tar zxvf linux-2.6.38.tar.gz
・移動
# cd linux-2.6.38
・現在のkernelバージョン確認
# uname -a
Linux localhost.localdomain 2.6.32-358.el6.i686 #1 SMP Thu Feb 21 21:50:49 UTC 2013 i686 i686 i386 GNU/Linux
・現在のkernelコンフィグを確認。
# cat /usr/src/kernels/2.6.32-358.el6.i686/.config | egrep "TRACE|hacking"
・ftraceを有効にするには↓がsetされる必要がる?
---省略---
# Kernel hacking
# CONFIG_FUNCTION_TRACER is not set
---省略---
・kernelソース初期化
# make mrproper
・古いコンフィグでmake(とりあえず全部デフォルトのままにした)
# cp -p /usr/src/kernels/2.6.32-358.el6.i686/.config .config
# make oldconfig
・新しいコンフィグの設定(1)
# make menuconfig
※ncurses-develが必要なので、無かったらインストールする。
*** Install ncurses (ncurses-devel) and try again.
***
make[1]: *** [scripts/kconfig/dochecklxdialog] Error 1
make: *** [menuconfig] Error 2
# yum install ncurses-devel
・新しいコンフィグの設定(2)
カーソルキーとスペースキーを駆使して下記を有効にする。
Kernel hacking --->
[*] Tracers --->
[*] Kernel Function Tracer
[*] Trace syscalls
・新しいkernelコンフィグを確認。
# cat .config | egrep "TRACE|hacking"
・ftrace関係がyになった
---省略---
# Kernel hacking
CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
---省略---
【カーネルコンパイル、インストール】
・カーネルイメージを作成。
# make bzImage
・コンパイル&インストール。
# make modules
# make modules_install
# make install
・/boot/grub/grub.confの変更
2.6.38がgrub.confに追加されているので、デフォルトになるように書き換える。
# vi/boot/grub/grub.conf
----
default=0
#default=1←コメントアウト
----
・リブートする
# reboot
【確認】
・現在のkernelバージョン確認
# uname -a
Linux localhost.localdomain 2.6.38 #3 SMP Sat Feb 15 01:21:35 PST 2014 i686 i686 i386 GNU/Linux
・ftraceが有効か確認。※functionが入っていないとftrace無効。
# mount -t debugfs nodev /sys/kernel/debug
# cat /sys/kernel/debug/tracing/available_tracers
blk function_graph wakeup_rt wakeup function sched_switch nop
-------------------------------
参考HP
http://d.hatena.ne.jp/eco31/20110111/1294673589
最終更新:2014年02月15日 20:43