Linux 6.17 deve melhorar desempenho de VMs SEV em CPUs AMD com cache flushing inteligente

4 min

Nova proposta melhora desempenho ao evitar invalidações desnecessárias no KVM com virtualização criptografada!

Uma nova série de patches para o kernel Linux 6.17 publicada por desenvolvedores da AMD e do Google propõe uma otimização significativa para sistemas que utilizam Secure Encrypted Virtualization (SEV) com KVM no Linux. A mudança visa reduzir o impacto das operações de cache flushing (limpeza de cache) ao utilizar CPUs AMD EPYC, especialmente em servidores com alto número de núcleos.

Essa proposta deve ser integrada ao kernel Linux 6.17, que traz melhorias significativas, prevista para o final de 2025.

Problema atual: flushing de cache em todos os núcleos

Terminal mostrando otimização de cache flushing em VMs com SEV no Linux
Linux 6.17 deve melhorar desempenho de VMs SEV em CPUs AMD com cache flushing inteligente 3

Nos sistemas com SEV habilitado, cada operação de reclamação de memória dentro da máquina virtual (VM) pode disparar comandos de WBINVD ou WBNOINVD em todos os núcleos físicos, mesmo que a VM esteja rodando apenas em uma fração desses núcleos.

Como consequência, o desempenho de outros aplicativos no host pode ser impactado desnecessariamente. Em um cenário comum com 128 núcleos no host e uma VM SEV com apenas 8 vCPUs, isso representa uma penalização significativa para tarefas fora da VM.

Solução proposta: cache flushing seletivo

A nova abordagem propõe:

  • Substituir WBINVD por WBNOINVD para evitar corrupção de dados por aliasing com o C-bit
  • Executar o flushing somente nos núcleos físicos efetivamente utilizados pela VM SEV, rastreando onde cada vCPU foi alocada

Com isso, o número de invalidações de cache é reduzido, preservando a performance do sistema host. Essa mudança é resultado da combinação de duas séries anteriores: uma de Kevin Loughlin, voltada para uso do WBNOINVD, e outra de Zheyun Shen, focada em flushing direcionado.

Ainda sem benchmarks, mas com impacto previsto

Embora os patches não incluam métricas de benchmark, o impacto prático deve ser relevante em ambientes com múltiplas VMs SEV e grande paralelismo. A série já recebeu revisões técnicas e deve ser integrada via a árvore kvm-x86 do kernel.

Os commits afetam os subsistemas x86/lib, KVM/SVM, drm/gpu, e arquivos centrais de cache e instruções especiais. A proposta foi publicada por Sean Christopherson (Google) e revisada por colaboradores da AMD, Red Hat e Intel.

FAQ – Cache flushing otimizado para SEV

O que é SEV (Secure Encrypted Virtualization)?

É um recurso das CPUs AMD que isola e criptografa a memória de VMs para maior segurança contra acessos indevidos do host.

Por que o cache flushing atual impacta o desempenho?

Porque força a limpeza do cache em todos os núcleos do sistema, mesmo que apenas parte deles esteja envolvida com a execução da VM.

O que muda com essa proposta?

O flushing será feito apenas nos núcleos usados pela VM, e de forma mais segura com o uso do WBNOINVD.

Essa melhoria estará disponível para usuários comuns?

Sim, desde que usem VMs com SEV em CPUs AMD compatíveis e adotem o kernel Linux 6.17 ou superior com KVM.

Quando isso será integrado ao kernel?

A previsão é para o ciclo de desenvolvimento do Linux 6.17, ao longo do segundo semestre de 2025.

Conclusão

A proposta de cache flushing seletivo para SEV representa uma otimização importante para servidores AMD com virtualização segura. Embora transparência e segurança sigam como prioridades, o novo modelo busca também preservar o desempenho em sistemas host de alta densidade. Essa é mais uma evolução dentro da integração entre KVM, AMD e o kernel Linux rumo a uma virtualização mais eficiente.

Compartilhe este artigo