이 기사는 Kevin의 WBNOINVD 시리즈와 Zheyun의 타겟 플러싱 시리즈의 통합을 다루며, 이는 다가오는 리눅스 6.17 릴리스에서 KVM(커널 기반 가상 머신)을 위한 AMD SEV(안전한 암호화 가상화) 캐시 플러싱을 최적화하는 것을 목표로 합니다. 주요 목표는 캐시 유지 관리 중 WBINVD 명령어를 WBNOINVD로 대체하여 C 비트 별칭과 관련된 데이터 손상 위험을 완화하는 것입니다. 이 변경은 관련 가상 머신(VM)과 마지막 플러시 이후 상호작용한 CPU에서만 캐시를 플러시함으로써 캐시 무효화를 최소화하여 성능을 향상시킬 것으로 기대됩니다. 현재 AMD CPU에서 캐시 일관성이 부족한 경우, SEV 게스트에서 각 메모리 페이지 회수는 모든 CPU에서 WBNOINVD/WBINVD 호출을 필요로 하며, 이는 호스트에서 실행 중인 다른 애플리케이션의 성능을 저하시킬 수 있습니다. 현대 AMD 서버는 128개 이상의 코어를 특징으로 할 수 있지만, SEV 게스트는 이 중 일부(예: 8코어)만 사용할 수 있어 비효율성이 뚜렷해집니다. qemu-affinity를 사용하면 이러한 가상 CPU를 특정 물리적 CPU에 바인딩할 수 있으며, 가상 CPU가 작동할 때마다 물리적 코어 번호를 기록하면 모든 CPU에서 불필요한 캐시 플러시를 크게 줄일 수 있어 전체 시스템 성능을 향상시킬 수 있습니다. 제안된 변경 사항은 적절한 승인과 재기반화 과정에서 문제 없이 성공적으로 통합될 경우, 6.17 개발 주기 동안 kvm-x86 트리를 통해 제출될 예정입니다.
* 이 글은
phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은
이곳에서 확인하실 수 있습니다.