Linux Lands Fix for Rare, Varying SMP Boot Hangs Affecting Kernels Since 2024
2024년부터 발생한 드문 SMP 부팅 멈춤 현상, Linux에서 수정
일부 SMP 시스템에서 부팅이 멈추는 문제를 줄이기 위해 Linux 커널이 콘솔 출력용 NBCON 커널 스레드(KThread)의 시작 시점을 늦췄습니다. 이 문제는 2024년 9월 NBCON 코드 도입 뒤 보고됐으며, 수정은 Linux 7.3에 병합됐습니다.
- 주제
에디터 노트
보고된 부팅 멈춤을 NBCON KThread의 시작 시점과 연결한 근거는 재현 시스템에서 시작을 늦추자 문제가 사라졌다는 점과 NBCON 사용을 되돌렸을 때 증상이 사라졌다는 점입니다. 다만 보고마다 증상이 다르고 일부 하드웨어에서 발생한 문제인 만큼, 본문은 모든 SMP 부팅 멈춤의 원인을 확정하지 않습니다. 수정은 초기화 순서를 바꾸는 방식이며 다른 지원 커널에 실제로 백포트됐는지는 본문에서 확인되지 않습니다.
AI 요약
일부 SMP 시스템에서 부팅 중 멈춤 현상이 보고됐습니다. 증상은 서로 달랐지만 SMP 초기화 중 IPI를 놓치는 문제와 겹치는 부분이 있었고, NBCON 콘솔 사용을 되돌리면 문제가 사라졌습니다. Linutronix의 John Ogness는 부팅 초기에 실행하는 콘솔 출력용 KThread가 인터럽트를 비동기적으로 켜고 끄면서 일부 하드웨어의 SMP 초기화와 간섭할 가능성을 설명했습니다.
수정 내용
패치는 콘솔 출력 KThread의 시작을 늦춰 아키텍처별 초기화 호출(arch initcalls)이 모두 끝난 뒤 실행하도록 바꿨습니다. 재현되던 시스템에서 이 변경으로 부팅 멈춤 현상이 사라졌습니다. 수정은 Linux 7.3에 병합됐으며, Phoronix는 다른 지원 커널 브랜치에도 백포트될 것으로 예상합니다.
Reddit 반응
- @u/ilep — 실제 변경 사항 링크: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5f339c46f153184570f16c8e789c9709b14cbe8b
원문: Phoronix / 번역·요약: Trawling