LoongsonのCPUで原子加算命令が「原子性」を失う——Debianパッケージを無限ループに陥れた誤り

The Lost Atomic Update on Loongson CPU

LoongsonのCPUで原子加算命令が「原子性」を失う——Debianパッケージを無限ループに陥れた誤り

2026年2月、DebianのLoongArch移植版でnormalizのテストが無限ループに陥った。原因はOpenMPのatomic加算が時々更新を失うことだった。半年後、AIを活用して再調査し、LASXのベクトル読み込みとデータバリアなしの原子命令が組み合わさると問題が発生することを突き止めた。Loongsonは2週間で修正ファームウェアを提供し、10月1日までにリリース予定だ。

CPUの原子加算命令が、時々原子性を失うことがある。
  1. TazeTSchnitzel

    > 修正はMCSR24のビット13を1に設定することです。MCSR24はマニュアルに機能が記載されていない内部CSRです。このビットを設定すると、失われた更新は発生しなくなります。テストでは性能低下はごくわずかであることが示されました:シングルコア性能は影響を受けず、マルチコア性能はわずかに低下するだけです。

    おそらくこれはいわゆる「チキンビット」でしょう。

この日のほかの記事

2026-09-26