lockに魅了された人たち

アウトプットしろと@repeatedly先生が言うので
4
SKS rep @repeatedly

TLがまたlockで盛り上がっている.早くアウトプットするんだ!

2011-02-17 20:19:05
くまぎ @kumagi

linuxのロックの実装は聞いたことが無い…。僕の知ってるSolarisの話は2008年ごろの論文での情報なので、linuxもsolarisも共にもっと賢くなってるかもしれない。誰かコミッタのかた!!

2011-02-17 20:22:36
小崎 資広 (KOSAKI Motohiro) @kosaki55tea

@kumagi Linuxにコミッタという制度はない。Solarisにもないんじゃないかなぁ

2011-02-17 20:26:16
小崎 資広 (KOSAKI Motohiro) @kosaki55tea

Linuxでロックとかいわれても前提じょうけんがわからんと話がつづけようがない気がする

2011-02-17 20:35:07
くまぎ @kumagi

@kosaki55tea pthread_mutex_lockを行った場合にどうなるのかっていう所です…。競合してる場合としてない場合とで挙動が変わるのでしょうけれど…。

2011-02-17 20:39:20
小崎 資広 (KOSAKI Motohiro) @kosaki55tea

@kumagi いまのglibcだとpthread_mutex_lockはlock cmpxchgしてロックとれなかったらfutex wait してるだけ

2011-02-17 21:10:25
小崎 資広 (KOSAKI Motohiro) @kosaki55tea

またkumagiせんせいにいじめられてる

2011-02-17 21:15:33
SKS rep @repeatedly

k○sakiさんいじめるとかkumagi先生怖い…

2011-02-17 21:16:44
くまぎ @kumagi

@kosaki55tea 中身実質futexじゃないですか!それと何でcmpxchgなんですか?xchgでも同様の事が可能そうだと勝手に思ってるのですが…。

2011-02-17 21:11:54
小崎 資広 (KOSAKI Motohiro) @kosaki55tea

@kumagi lockなんてコード増やせば増やすほど遅くなるからじゃない?ロックでcmpxchgは常道だと思ってるのでなんでと聞かれても・・・

2011-02-17 21:14:51
小崎 資広 (KOSAKI Motohiro) @kosaki55tea

@kumagi 速くしたいならロックをいじるんじゃなくてデータ構造かえてロック競合を減らした方が効果的

2011-02-17 21:16:33
くまぎ @kumagi

@kosaki55tea うーん。スケーラビリティやキャッシュラインの取り合いを考慮すると優秀なものは実装が大きいんですが…。cmpxchgに関しては、僕がlockを調べたときにxchgを用いて説明されたのでそういうものなのだと勝手に思ってました。

2011-02-17 21:16:52
小崎 資広 (KOSAKI Motohiro) @kosaki55tea

@kumagi 優秀の定義がいるでしょう。予想される競合発生確率がわからないと最適化の方向が定まらない。あとfairnessいるかどうかとか

2011-02-17 21:19:37
くまぎ @kumagi

@kosaki55tea fairnessは必要なので待機スレッドをqueueで保持したほうが良いですし、それならついでに無駄なawake動作が削減できて性能的にもスケールするだろうな、と思ってます。

2011-02-17 21:23:10
小崎 資広 (KOSAKI Motohiro) @kosaki55tea

@kumagi futex内部にキューはありますよ。awake動作のためにどうせ一回はカーネルに入る必要有るんだからキューはユーザランドにあってもカーネル内にあってもかわらんと思うけど

2011-02-17 21:30:58
くまぎ @kumagi

@kosaki55tea futexすごい!!勝手にfastなループだろと思ってました…!

2011-02-17 21:34:51
小崎 資広 (KOSAKI Motohiro) @kosaki55tea

@kumagi fastなループってどんなのなんでしょう?

2011-02-17 21:36:03
くまぎ @kumagi

@kosaki55tea ただのスピンロックかと。

2011-02-17 21:36:25
くまぎ @kumagi

結論:下手な事するよりも世の中のmutex実装はずっと賢かった。

2011-02-17 21:44:21