ftrace function_graph
でカーネルブートプロセス中に関数をトレースして、それが何であるかを理解したいのですが、available_filter_functions
では利用できません。function_graphトレーサをftraceするためのLinuxカーネル関数の作成方法
EXPORT_SYMBOL()
でエクスポートしようとしましたが、これは利用可能になると推測していますが、そうではありません。
解決策はありますか?
Androidカーネル3.4では、トレースしたい機能はpersistent_ram_init_ringbuffer
とpersistent_ram_early_init
です。
私はこれらのリンクが役立つかもしれない...
おかげ
Ftraceを理解してから、関数の動的なトレースは、すべてのカーネル関数の開始時にmcount関数呼び出しに依存しています。関心のある機能にその機能がない場合は、使用可能なフィルターが表示されないことがあります。動的トレースを使用しないと考えましたか?より良い結果が得られるかもしれません。 –
EXPORT_SYMBOLは、Ftraceではなく、GPL /非GPLライセンスの問題を解決するカーネルモジュールローダーともっと関係しているようです。 – bazza
available_filter_functionsをリストすると、何も表示されません。 CONFIG_FUNCTION_TRACER(および他のすべてのftrace gubbins)を使ってカーネルをコンパイルするときにわかることから、カーネル関数の入/出力トレースは、gccコマンドラインのオプションを設定することによって実装されます。これらのオプションは、gccがコンパイルするすべての関数に対して特定の関数呼び出しを発行するようにします。私が理解しているのであれば、Linuxカーネルの機能は自動的にftraceでキャプチャされるはずです。これは、あなたのカーネルで何かが現在追跡可能であるかどうか疑問に思う。 – bazza