4.4. 競合ユーザースペースのロックの特定
このセクションでは、特定期間におけるシステムを通した競合ユーザースペースのロックを特定する方法を説明します。競合ユーザースペースのロックの特定は、
futex
競合が原因と疑われるハングの調査に役立ちます。
簡単に説明すると、複数のプロセスがメモリーの同じ領域にアクセスしようとすると、
futex
競合が発生します。場合によっては、これは競合しているプロセス間のデッドロックになり、アプリケーションがハングしているように見えます。
これを特定するために、futexes.stp では
futex
システムコールをプローブします。
futexes.stp
futexes.stp は手動で停止する必要があります。終了時には以下の情報が表示されます。
- 競合の原因となったプロセスの名前と ID
- 競合対象となったメモリー領域
- メモリー領域が競合された回数
- プローブ中の競合の平均時間
例4.17「futexes.stp のサンプル出力」 は futexes.stp を終了した際 (約 20 秒後) の出力の抜粋です。
例4.17 futexes.stp のサンプル出力