Linux 7.2-rc2, 기본 RISC-V 64비트 CPU 제한을 256코어로 상향
요약
Linux 7.2-rc2에서 RISC-V 64비트 아키텍처의 기본 CPU 코어 제한(NR_CPUS)이 기존 64개에서 256개로 상향되었습니다. 이는 SpacemiT의 요청에 따른 것으로, 고코어 RISC-V 서버 프로세서 지원을 위한 조치입니다.
핵심 포인트
- RISC-V 64비트 기본 NR_CPUS 값이 64에서 256으로 상향됨
- 고코어 RISC-V 서버(80~128코어 이상) 지원을 위한 필수 업데이트
- 커널 메모리 소비가 약간 증가할 수 있으나 성능 영향은 미미함
- x86_64, AArch64 등 타 아키텍처와의 코어 지원 격차 해소
Linux 7.2-rc2, 기본 RISC-V 64비트 CPU 제한을 256코어로 상향

지금까지 RISC-V 64비트는 지원되는 CPU 코어 수에 대해 NR_CPUS 값을 64로 유지해 왔습니다. 하지만 Linux 7.2를 위해 Git에 병합된 내용에 따르면, 해당 기본 임계값이 256 코어/스레드로 상향되었습니다. NR_CPUS 값은 결과적으로 다양한 정적 메모리 할당(static memory allocations)의 크기에 영향을 미치며, 이 숫자가 높아짐에 따라 커널 메모리 소비가 약간 증가합니다. 한편, Linux x86_64의 경우, MAXSMP가 활성화된 대부분의 배포판 벤더 커널은 오늘날의 높은 코어 수를 가진 AMD 및 Intel 서버 프로세서를 처리하기 위해 NR_CPUS를 8192까지 높여 설정하고 있습니다. AArch64 (ARM64)는 NR_CPUS 값이 512이며, LoongArch는 2048입니다.
RISC-V의 NR_CPUS를 높이는 것은 SpacemiT의 요청에 따라 이루어졌습니다. 제한을 상향하는 커밋(commit)에는 다음과 같이 설명되어 있습니다:
"SpacemiT는 이미 80코어 RVA23 RISC-V 서버를 제작했으며, 더 거슬러 올라가면 듀얼 소켓 SG2042 기반의 Sophgo Pisces는 128코어를 보유하고 있습니다 (비록 메인라인 지원을 달성하는 데 몇 가지 문제가 있었지만). 따라서 NR_CPUS 64는 충분하지 않습니다.
64비트(64BIT)에 대해 기본 NR_CPUS를 256으로 상향합니다 (!RISCV_SBI_V01인 경우, 매우 오래된 펌웨어는 64코어 이상을 지원할 수 없기 때문). 이 숫자는 알려진 최대치의 최소 두 배가 되는 2의 거듭제곱으로 선택되었습니다. 저는 이것이 메모리를 너무 많이 낭비하지 않으면서도 이 작업을 너무 자주 수행하지 않아도 되는 적절한 균형이라고 믿습니다.
Ubuntu는 이미 riscv64에 대해 NR_CPUS=512를 배포해 왔습니다. 저희 ISCAS에서도 내부적으로 NR_CPUS=256을 테스트해 보았으며, 무시할 만한 성능 영향과 부작용이 없음을 확인했습니다."
유일하게 놀라운 점은 이것이 병합 창(merge-window) 이후에 Linus Torvalds에 의해 수락되었다는 것인데, 물론 실제적인 회귀(regression) 위험은 없을 것입니다.
해당 NR_CPUS 증가는 이번 주 RISC-V 수정 사항의 일부로 Linux Git에 병합되었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Phoronix의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기