コードにロック競合ポイントがあるかどうかを確認するために、pthread ミューテックスをプロファイリングする方法を知りたいです。(論争の的となるコードが好きな人はいますよね? :) 私はここで述べたように、コードのより一般的なプロファイリングを行う方法を知っています。しかし、問題のある領域があるかどうかを確認するためにミューテックス ロックの競合に関するメトリック/統計情報を提供する、ミューテックス ロックをプロファイルできるツールまたはオプションがあるかどうかを知りたいです。
背景とコンテキストは次のとおりです。
最近、Cavium Octeon CPU を使用した組み込み C++ プロジェクトに取り組みました。Octeon SDK は、スピンロックを使用してミューテックス スタイルの同期を実装します。Octeon のドキュメントを調べたところ、スピンロックのプロファイルを作成して、ロックが使用可能になるのを待っている間に各スピンロックが何回スピンしなければならなかったかを確認できる方法を見つけました。これを使用するには、条件付きコンパイルを実行する必要があり、スピンロックがスピンするたびにカウンターがインクリメントされ、スピナーの待機値を照会できました。そこで、スピンロックをカプセル化し、システムで使用されるすべてのスピンロックのスピンロック スピナー待機値をダンプする機能を追加しました。実際の値はあまり意味がありませんでしたが、残りの値と比較して非常に高い値がいくつかあり、それらの競合を減らすことに焦点を当てました.
スピンごとの単なるカウンターであるため、これはおそらくスピンロックにとって非常に簡単であることはわかっていますが、関連する pthread のマニュアルページとヘッダーファイルを読んでも、似たようなものは見つかりませんでした.pthread ミューテックスに利用できるものはありますか?
各ロックの前後に時間をかけるようなハックなことをする必要は本当に避けたいです。
PS: ミューテックスの複数形は何ですか? ミューテックス、ミューテックス、ミューテックス、ムーティ??? ミューテックスは私には正しく聞こえませんでした。