리눅스 6.17 커널은 비대칭 다중 처리(SMP) 호출을 처리하는 데 있어 비균일 메모리 접근(NUMA) 지역성을 향상시켜 중요한 개선 사항을 도입했습니다. 이전에는 `smp_call_function_any()` 함수가 가장 효율적인 옵션으로 로컬 호출을 시도하거나 동일한 노드 내의 CPU로 전환했습니다. 두 가지 방법 모두 불가능할 경우, 숫자 순서로 모든 CPU를 검색하는 방식으로 전환했으며, 이는 비효율성을 초래할 수 있었습니다.
새로운 업데이트에서는 알고리즘이 NUMA 지역성을 기반으로 최적의 CPU를 검색하는 것을 우선시하며, 이는 두 번째로 가까운 홉과 잠재적으로 더 먼 거리도 고려합니다. 이러한 변화는 CPU 선택을 최적화할 뿐만 아니라 이러한 작업에 필요한 관리 코드의 양을 줄이는 새로운 함수 `sched_numa_find_nth_cpu()`에 의해 가능해졌습니다. 이 개선 사항은 메모리 접근 패턴을 보다 효율적으로 만들어 다중 코어 시스템의 성능을 향상시키고, 지연 시간을 줄이며 NUMA 아키텍처에서 처리량을 증가시킬 것으로 기대됩니다.
전반적으로 리눅스 6.17의 개선 사항은 NUMA 구성에 크게 의존하는 시스템의 커널 성능에서 주목할 만한 발전을 나타내며, 개발자와 사용자 모두에게 중요한 업데이트가 될 것입니다.
* 이 글은
phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은
이곳에서 확인하실 수 있습니다.