相关疑难解决方法(0)

cmpxchg 是否会在失败时写入目标缓存行?如果不是,对于自旋锁来说它比 xchg 更好吗?

我假设简单的自旋锁不会进入操作系统等待这个问题的目的。

我发现简单的自旋锁通常使用lock xchgorlock bts代替 来实现lock cmpxchg

cmpxchg但是如果期望不匹配,是否会避免写入该值?那么失败的尝试不是更便宜吗cmpxchg

或者即使cmpxchg发生故障也会写入数据并使其他核心的缓存线无效?

这个问题类似于什么具体将 x86 缓存行标记为脏 - 任何写入,还是需要显式更改?,但它是特定的cmpxchg,而不是普遍的。

x86 assembly micro-optimization compare-and-swap cpu-cache

5
推荐指数
1
解决办法
1195
查看次数