glibc lock elision の感想もうひとつ

glibc の lock elision パッチへの感想ですけど、 RTM をウラで使われると、典型的なデッドロックであるところの AB-BA 的な deadlock 、つまりロックの順番が逆転してるコードパスがあると deadlock 、ってケースの発見率が減ることがあるんじゃないかな、とか思いました。

つまり、 RTM に頼った動作をしている時は AB-BA をやっててもデッドロックせず、 conflict がたまたま何度も発生して普通の mutex に fallback した時にだけ再現する deadlock になる、と。

試しに書いてみた以下のコード

https://github.com/shinh/test/blob/master/deadlock.cc

だと、適当に何度か実行してみた感じでは、 lock elision を有効にしている時は 10 回中 2 回くらいしか deadlock せず、無効にすれば 10 回中 8 回ほど deadlock しました。

うーんこれはちょっとめんどくさそうですね…

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h