C++非対称フェンスの内部:Linux membarrier() システムコールの詳細

C++ Details of Asymmetric Fences

C++非対称フェンスの内部:Linux membarrier() システムコールの詳細

FacebookのFollyライブラリで使われている非対称スレッドフェンスの実装を、C++提案書P1202R0からLinuxカーネルのmembarrier()システムコールまで掘り下げて解説。高速パスではコンパイラバリアのみでCPUフェンスを省略し、低速パスでmembarrier()を呼ぶことで全体のパフォーマンスを向上させる仕組みを、Dekkerの例やメモリモデルの詳細とともに説明する。

membarrier()システムコールは、マルチコアシステムにおけるメモリバリア命令のオーバーヘッドを削減するのに役立ちます。

この日のほかの記事

2026-07-07