최근 Linux 6.14에 통합된 TLB 플러싱 확장성 최적화는 AMD와 Intel CPU의 성능을 향상시키기 위해 설계되었으며, 특히 다중 스레드 작업에서 빈번한 컨텍스트 전환이 발생하는 경우에 효과적입니다. 이 최적화는 mm_cpumask를 지연 업데이트하는 데 중점을 두어, 컨텍스트 전환 중의 경합을 줄입니다. 이 변경 사항은 CPU 비트가 이미 설정되어 있지 않은 경우에만 컨텍스트 전환 시 설정되도록 하며, 프로세스가 현재 실행 중이지 않은 CPU에 대해 첫 번째 TLB 플러시 시 CPU 비트를 지웁니다.
실제로, 36코어 AMD Milan 시스템에서 특정 작업 부하에 대해 성능이 약 4.5초에서 4.2초로 개선되었으며, 이는 효율성의 눈에 띄는 향상을 나타냅니다. 또한, 이전에 컨텍스트 전환 중 CPU 시간의 약 17%를 소모했던 cpumask_test_cpu 함수는 CONFIG_DEBUG_VM 아래로 이동하여 최적화되었으며, 이를 통해 프로덕션 커널에 컴파일되지 않도록 하였습니다. 이 변경은 성능 일관성이 중요한 대규모 서버 환경에서 운영을 더욱 간소화할 것으로 기대됩니다.
전반적으로 이러한 최적화는 다중 코어 시스템에서 Linux의 확장성을 개선하는 데 중요한 역할을 하며, 높은 수준의 동시성과 컨텍스트 전환을 요구하는 애플리케이션에 혜택을 주어 AMD와 Intel 아키텍처 모두에 긍정적인 영향을 미칠 것입니다.
* 이 글은
phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은
이곳에서 확인하실 수 있습니다.