http://techreport.com/news/26911/errata-prompts-intel-to-disable-tsx-in-haswell-early-broadwell-cpus
TSXとは
http://ascii.jp/elem/000/000/726/726151/
TSXの基本的な動作は、トランザクション処理にある
(中略)
TSXでは「コンフリクト」のチェックを自動で行なう。TSXの機能のひとつである「Restricted Transactional Memory」(RTM)には、トランザクションの開始と終了を示す「XBEGIN」「XEND」という命令がある。この命令で挟まれている部分(トランザクション対象ルーチン)では、TSXのトランザクション機能が働く。トランザクションの開始となるXBEGIN命令を実行すると、その時点でのCPUの内部状態がCPU内の特別な場所に保存される
(中略)トランザクション対象ルーチンからのメモリー読み出しは、コンフリクトの監視対象となる。これには1次(L1)キャッシュを使う(メモリーからの読み込みは必ず1次キャッシュにキャッシュされる)。同様に、メモリーへの書き込みは1次キャッシュのテンポラリー(一時利用)領域に置かれて、トランザクション処理が終わるまで書き込みを保留される。
この最中に、読み出したメモリーアドレスを他のスレッドが書き込むと(コンフリクトの発生)、トランザクション開始時に指定したアボート・アドレスにあるプログラム(アボート・ルーチン)に制御が移る。
(中略)
TSXでは、コンフリクトが発生しなければアボートも発生せず、そのままXENDで1次キャッシュに保留されていたメモリー内容がコミットされ書き込まれる。「コンフリクトが生じなければ、そのまま処理を続ける」というやり方を、「楽観的な実行」と呼ぶ。実際の処理では読み書きするメモリーは多数あるし、広い範囲をロックして利用することになるため、常に衝突が起きるとは限らない。
めも、未検証
http://it.slashdot.jp/comments.pl?sid=638549&cid=2657407
たとえば linux だと、カーネルは 3.13 あたりから、glibcは2.18から内部でTSXを使ってます。
glibc-2.18は2013年8月リリースですので、ここ一年以内にリリースされた新しめのLinuxディストリビューションは影響を受ける可能性が高いです。
http://it.slashdot.jp/comments.pl?sid=638549&cid=2657715
めも、未検証