Aarch64 原子操作真的这么敏感吗?(答:不是)

Aarch64 原子操作真的这么敏感吗?(答:不是)

💡 原文英文,约200词,阅读约需1分钟。
📝

内容提要

Guile 3.0.9的aarch64原子处理存在问题,作者尝试了两种解决方案,其中一种奇怪的解决方案竟然有效。问题与C语言的atomic_exchange等价物有关。第一个补丁需要ARM v8.1设备,第二个补丁只改变了cbnz的目标,问题消失了。作者感到困惑。

🎯

关键要点

  • Guile 3.0.9的aarch64原子处理存在问题。
  • 作者发现了两种解决方案,但其中一种解决方案很奇怪。
  • 问题与C语言的atomic_exchange等价物有关。
  • 生成的代码在某些情况下会丢失写入。
  • 第一个补丁需要ARM v8.1设备。
  • 第二个补丁仅改变了cbnz的目标,问题消失了。
  • 作者对此感到困惑。
➡️

继续阅读