perf
カーネル (3.11.10) 用にコンパイルしました。コンパイル中にいくつかのライブラリが不足していたので、それらをインストールしました。
しかし、今実行するperf
と、次のメッセージが表示されます。
Couldn't record kernel reference relocation symbol
Symbol resolution may be skewed if relocation was used (e.g. kexec).
Check /proc/kallsyms permission or run as root.
Kernel address maps (/proc/{kallsyms,modules}) were restricted.
Check /proc/sys/kernel/kptr_restrict before running 'perf record'
If some relocation was applied (e.g. kexec) symbols may be misresolved.
Samples in kernel modules can't be resolved as well.
私はカスタム ビルド カーネルを使用しているため、最も明白な説明は、カーネルにいくつかのオプションが欠落しているということです。もしそうなら、何が欠けているかをどうやって見つけることができますか?
perf
何が不平を言っているのか正確にはわかりません。どうすればこれを修正できますか?
編集:
/proc/kallsyms
は存在せず、/proc/sys/kernel/kptr_restrict
含まれています0
:
$ cat /proc/sys/kernel/kptr_restrict
0
カーネルを自分でコンパイルしましたが、オプションが欠落している可能性があります。これは何/proc/kallsyms
ですか?カーネルで有効にするにはどうすればよいですか?