Linux カーネルのモジュールのプロファイリングに興味があります。私はこのようにしてみました:
- でカーネルを構築しました
CONFIG_PROFILING=y
- でカーネルを起動しました
profile=2
- プロファイラーをリセットする
echo 123 > /proc/profile
- モジュールは専用デーモンによって正常にロードされました
ioctl
特定の呼び出しを通じて、モジュールを使用しているユーザー空間アプリを実行します。テスト アプリは期待どおりに機能したため、モジュールは正常に機能していました。- System.appがカーネルと共に生成された
readprofile -p /proc/profile -m System.map
場所を使用して、プロファイリング情報を読み取ります。
ここまでは順調ですね。ほとんどすべてが期待どおりに機能しました。ただし、うまくいかなかったのは、モジュールに関する情報が得られなかったことです。つまり、モジュールからの機能についての言及がありませんでした。
しかし、よく考えてみると、を使用してモジュールを再コンパイルするのを忘れていたことを思い出しましたCONFIG_PROFILING=y
。
それで、私の質問は次のとおりです。モジュールがプロファイリング ログに表示されなかったのは、モジュールがコンパイルされていなかったCONFIG_PROFILING=y
ためですか、それとも、私が知らない他の明らかな理由があるのでしょうか?
すぐに試すのではなく、なぜ質問しているのか疑問に思うのは、それは、家ではできないので、コードに再びアクセスする前に、知識のある人が何を言うかを聞きたいからです.