0

コードでロックの競合を見つけようとしていますが、標準の systemtap リリースで futexes.stp を見つけました。しかし、出力に関していくつか質問があります。

stap -d /usr/local/bin/cruncher ~/futexes.stp
(and then I run cruncher application in another term)

auditd[1803] lock 0x564dd507f228 contended 2 times, 119 avg us
auditd[1803] lock 0x564dd507f254 contended 28 times, 458040 avg us
rs:main Q:Reg[1837] lock 0x5563b67c2044 contended 7 times, 2352067 avg us
...
cruncher[17021] lock 0x7f6c9c57914c contended 2 times, 46 avg us
cruncher[17021] lock 0x7eff50 contended 82 times, 16 avg us
cruncher[17021] lock 0x7f6c40901f24 contended 20 times, 109 avg us
cruncher[17021] lock 0x7f6f38e0633c contended 4471 times, 2106 avg us
cruncher[17021] lock 0x7dae7c0 contended 8861 times, 26 avg us
cruncher[17021] lock 0x7f6cc2f14560 contended 2 times, 9 avg us
cruncher[17021] lock 0x7f6c8685d024 contended 5 times, 95 avg us
cruncher[17021] lock 0x7f6cd9e2ded4 contended 6 times, 428 avg us
cruncher[17021] lock 0x7f6c5196937c contended 44 times, 484 avg us
cruncher[17021] lock 0x7f6ba20c0290 contended 4 times, 8 avg us
...

だからここに質問があります:

  • 0x7f........ スタックアドレスで構成されているものは何ですか? 私はそれが私のアプリケーションからのものではないと確信しています。これらのライブラリまたはカーネル ミューテックス (または condvars) は、アプリケーションに代わって使用されますか? それを確認するにはどうすればよいですか?

  • 短いアドレスの「ロック」は私のものです。gdb の「info symbol」コマンドでそれらを確認できますが、stap から自動的にシンボルにデコードする良い方法は何でしょうか?

私は、同じボックスにビルドされた Linux 4.6.2 メインライン カーネルを使用しており、git リポジトリの最新の systemtap を使用しています。私の Cruncher アプリケーションは -g でビルドされ、シンボルは削除されません。

よろしくお願いします!

4

1 に答える 1