まとめ:perf lock
プロファイルは pthread_mutex ですか?
詳細:
ツールperf
にはオプションがありますperf lock
。マニュアルページには次のように書かれています:
You can analyze various lock behaviours and statistics with this perf lock command.
'perf lock record <command>' records lock events
between start and end <command>. And this command
produces the file "perf.data" which contains tracing
results of lock events.
'perf lock trace' shows raw lock events.
'perf lock report' reports statistical data.
しかし、実行しようとするperf lock record
と、次のエラーが表示されましたinvalid or unsupported event: 'lock:lock_acquire'
。私が見たところ、エラーはおそらくカーネルがCONFIG_LOCKDEP
orでコンパイルされていないことが原因のようですCONFIG_LOCK_STAT
。
私の質問はperf lock
、ユーザー空間ロック (pthread_mutex など) に関連するイベントを報告するのか、それともカーネル ロックのみを報告するのかということです。主にユーザー空間で実行されるアプリケーションのプロファイリングに興味があります。perf のこのオプションは面白そうだと思いましたが、新しいカーネルをコンパイル (または取得) しないと実行できないので、試す前にそれが何をするかをよりよく理解したいと思っています。