Loongson CPU에서 발견된 원자적 업데이트 유실 버그

The Lost Atomic Update on Loongson CPU

Loongson CPU에서 발견된 원자적 업데이트 유실 버그

2026년 2월, Debian LoongArch 서버에서 normaliz 패키징 중 OpenMP의 atomic 누산 연산이 무한 루프에 빠지는 문제가 발생했다. 원인은 LA664 코어의 원자적 덧셈 명령어가 특정 조건에서 원자성을 잃는 하드웨어 오류였다. AI의 도움으로 2일 만에 재현 프로그램을 확보했고, Loongson은 약 2주 만에 성능 저하 없이 펌웨어 수정을 완료해 10월 1일 전에 배포할 예정이다.

이 코드에서 nr_to_match는 전체 데이터 포인트 수, nr_points_matched는 이미 처리된 포인트 수, nr_points_done_in_this_round는 이번 라운드에서 처리된 포인트 수이다. 루프의 종료 조건은 nr_points_matched가 nr_to_match와 같아지는 것, 즉 모든 데이터 포인트가 처리되는 것이다. 무한 루프의 직접적인 원인은 nr_points_matched가 결코 nr_to_match에 도달하지 않아 루프가 종료될 수 없다는 것이다.

이 날의 다른 글

2026-09-26