【发布时间】:2011-05-13 01:42:54
【问题描述】:
Linux 内核使用lock; addl $0,0(%%esp) 作为写屏障,而RE2 库使用xchgl (%0),%0 作为写屏障。有什么区别,哪个更好?
x86 是否也需要读屏障指令? RE2 将其读取屏障功能定义为 x86 上的无操作,而 Linux 将其定义为 lfence 或无操作,具体取决于 SSE2 是否可用。什么时候需要lfence?
【问题讨论】:
标签: assembly x86 memory-barriers