2016-06-24 15 views
0

ft32を使ってperf_event_openをトレースしますが、available_filter_functionには表示されません。実際には、モジュールに読み込まれた関数のみが表示されているようです。ftraceでLinuxカーネル関数を表示するavailable_filter_function

モジュール以外の機能のデフォルトブラックリストはありますか?私は必要な機能を追加する方法?

+0

OSの配布は何ですか? Linuxカーネルの正確な名前(バージョン)は何ですか( 'uname -a'の出力) – osgx

答えて

1

スティーブンRostedtの記事、2010年1月20日「次にftrace機能トレーサーの秘密」のいくつかの情報があります:https://lwn.net/Articles/370423/

フィルタファイルに追加できる機能の一覧が示されているにavailable_filter_functionsファイル。この機能のリストは、前述のストアされたmcountの発信者のリストから得られたものです。ファイルにリストされている機能の

セット(*ブート/設定/または/proc/config.gzでそれらをチェックして、質問に結果を追加してください)カーネルのコンパイルオプションによって異なります。

CONFIG_FUNCTION_TRACER 
CONFIG_DYNAMIC_FTRACE 
CONFIG_FUNCTION_GRAPH_TRACER 

シリーズの以前の記事でMCOUNTについての詳細情報があります:https://lwn.net/Articles/365835/次にftraceを使用してカーネルのデバッグ - パート1は、2009年12月には、スティーブンRostedt:次にftraceの最も強力なトレーサーの

一つは、関数トレーサーです。 gccの-pgオプションを使用して、カーネル内のすべての関数に特別な関数 "mcount()"を呼び出させます。CONFIG_DYNAMIC_FTRACEが設定されていると、ブート時にNOPに変換され、システムは100%のパフォーマンスで動作します。コンパイル中にmcount()呼び出しサイトが記録されます。

/sys/kernel/debug/tracing/events/syscalls/sys_enter_perf_event_open /にあるファイルもチェックできますか?

システムコールはない機能としてではなく、イベント(opensourceforu.com/2010/12/kernel-tracing-with-ftrace-part-2/から例)として、次にftraceために用意されています。私にとって

trace-cmd record -e syscalls ls ##Initiate tracing on the syscall 'ls' 
##(A file called trace.dat gets created in the current directory.) 
trace-cmd report     ## displays the report from trace.dat 

trace-cmd record -e syscalls perf stat ls -d .perf_event_openを呼び出します。

関連する問題