08/10/08 00:01:55 XuxrYF0I
>>375
> RCUはCASを使わないからここでは話が違うよね。
> x86のRCU_CLASSICだとプリエンプト禁止するとか実装上のペナルティはあるけど。
ほとんどのディストリはvolunteer preemptionでコンパイルされているから気にしなくていいという認識。
・・・組み込み屋さん?
> ロック獲得待ちで待たされるのもCASでリトライしてループするのも
> 処理が終わらないという意味では待ち状態なんだし大差無いんじゃないの?
えーと、spinlockの実装がまさに、CASでリトライしてループだ。
んで、ロックだけのコストで見るとspinlock最強。
じゃあ、なんでlocklessとかwaitfreeにこだわるかというとほとんどの処理は、ロック獲得処理の重要度に非対称性があるから。
xtime の話だとreadがどれだけ遅くなってもwriteがwaitfreeであることに価値があるし、
一般的に、ほとんどのデータ構造はwriteよりもreadアクセスの方が圧倒的に多いからwrite処理が10倍重くなっても
readが数%軽くなるだけで全体のパフォーマンスが上がったりする。