Andrea Arcangeli, da Red Hat, enviou uma interessante série de patches na sexta-feira para otimizar a Máquina Virtual Baseada em Kernel (KVM) para aprimorar o desempenho do VMEXIT após as atenuações do Spectre. Assim, a Red Hat trabalhando na otimização do desempenho da virtualização KVM.
A série de patches “KVM monolítico” acaba vinculando o código comum do KVM no kvm-intel e no kvm-amd. Deste modo, o módulo do kernel “kvm” comum pode ser eliminado. Isso ocupa mais espaço em disco, porém deve proporcionar melhor desempenho em tempo de execução, principalmente para sistemas mitigados contra a Spectre Variant Two.
Red Hat trabalhando na otimização do desempenho da virtualização KVM
Para as atenuações padrão do Spectre V2 com Retpolines, essa alteração tem um impacto surpreendente no desempenho da virtualização da Intel e AMD para KVM. André observou: “Isso melhora o desempenho do vmexit em dois dígitos por cento nas marcas de microparque com a atenuação padrão spectre_v2 no VMX e no SVM. Com spectre_v2 = desativado ou com CPUs com IBRS_ALL em ARCH_CAPABILITIES, isso ainda melhora o desempenho, mas é mais da ordem de 1%. “Infelizmente, não houve resultados mais detalhados dessas melhorias percentuais de dois dígitos.
O engenheiro da Red Hat acrescentou:” Ainda teremos que lidar com CPUs sem o IBRS_ALL por uma década e é importante passar a redução da latência do vmexit certos benchmarks com cargas de trabalho que acionam vmexits frequentes sem ter que ativar o spectre_v2 = off no host (o que, pelo menos em teoria, tornaria o kernel do host vulnerável a ataques de espectros v2 do convidado, mesmo por hyperthreading).
Atualmente, esses patches “KVM mono” residem na lista de discussão do kernel . Com alguma sorte, poderíamos ver essa otimização de desempenho da KVM chegando ao Linux 5.5 no início de 2020, dois anos após o Specter V2 aparecer pela primeira vez em público.