룽손 LA664 CPU의 atomic add가 원자성을 잃고 업데이트 유실, 무한 루프를 만든 새 에라텀
- 룽손 LA664 CPU의 atomic add 명령이 가끔 원자성을 잃고 업데이트를 유실, 룽손이 인정한 새 CPU 에라텀임
- 2026년 2월 Wang Miao가 룽아크 서버에서 Debian용 normaliz를 패키징하던 중 OpenMP
#pragma omp atomic누산값이 실제 처리한 점 수에 못 미쳐 테스트가 무한 루프에 빠졌음 - 사람이 최소 재현을 만들지 못해 6개월간 보류하다 AI에게 재현 코드 탐색을 맡긴 결과 약 2일 만에 안정적 재현 코드를 확보함
- 룽손은 보고 2주 만에 성능 손실이 거의 없는 수정을 찾음: 문서화되지 않은 내부 CSR MCSR24의 비트 13을 1로 설정하는 방식이며 싱글코어 성능은 그대로이고 멀티코어는 약간 감소함
- 룽손은 10월 1일 국경절 전에 수정 펌웨어를 배포할 예정이라 영향받는 기기는 펌웨어 업그레이드로 문제를 해결할 수 있음
Hacker News opinions
MCSR24의 비트 13을 1로 세팅하니까 lost update가 안 난다고 하더라. 이건 거의 textbook적인 chicken bit인데.
그러니까 성능 최적화가 버그로 판명나니까 끌 수 있는 비트를 문서에도 없는 레지스터에 숨겨둔 거지. 저게 chicken bit 정의에 딱 맞음.
chicken bit라는 용어가 원래 이런 데서 나온 거임. LWN 글이랑 위키낱말사전 인용 목록 보면 과학 문헌에도 제법 나오더라.