17/07/10 09:25:13.12 zPTrTH910.net
>>477
>ただこれだけだと不十分で、メモリシリアライズより前のタイミングでスレッドが切り替わった場合の動作保証ないからユーザーモードで確実にやるには割り込み禁止かけるなどちゃんと手順踏む必要あったはずなんだけどどうですかね?
そういう記述はどこにありますか?
「8.3 SERIALIZING INSTRUCTIONS」のセクションには例として特権命令と非特権命令が挙げられていますが、
非特権命令が存在する時点でユーザーモードからの実行を認めているということでしょう。
割り込み云々はOSが面倒を見るべきことですね。
例えばLinuxのsync_core()内でまさにiretqというserializing instructionが実行されてます。
仮にユーザーコード側でcpuidを行ったあとコードを実行する前に割り込みが入り、
戻ってきたとき違うコアに移動していたとしても、
それはOSが制御を戻す前にiretqでまさにシリアライズが行われた後ということになります。