FERRAMENTAS LINUX: O Kernel Linux agora lidará melhor com o AMD SEV-SNP para evitar o Undefined Behavior para as VMs antigas

terça-feira, 31 de janeiro de 2023

O Kernel Linux agora lidará melhor com o AMD SEV-SNP para evitar o Undefined Behavior para as VMs antigas

 


Fundido no domingo antes de marcar o Kernel Linux 6.2-rc6 é uma "correção" tardia para o código AMD Secure Encrypted Virtualization Secure Nested Paging (SEV-SNP) para evitar possíveis situações de comportamento indefinido com problemas difíceis de depurar em um host Linux moderno com SEV -SNP pode tentar inicializar uma máquina virtual Linux com um kernel desatualizado.

Alguns recursos AMD SEV-SNP precisam de suporte do lado do convidado para funcionar corretamente e, portanto, se um host Linux moderno com um kernel recente que oferece suporte a recursos mais recentes das CPUs AMD EPYC modernas tentar inicializar uma máquina virtual convidada com um kernel sem suporte para alguns recursos SEV, pode haver problemas - problemas que não são necessariamente fáceis de diagnosticar. Surpreendentemente, demorou até ontem para o kernel principal do Linux receber suporte de negociação de recurso convidado SEV-SNP para lidar com essa possibilidade real do host/hipervisor ter um kernel mais novo do que o encontrado nas VMs convidadas.

Do patch adicionando este suporte de negociação de recurso de convidado SEV-SNP:

"O hipervisor pode ativar vários novos recursos (SEV_FEATURES[1:63]) e iniciar o convidado SNP. Alguns desses recursos precisam de implementação do lado do convidado. Se algum desses recursos for ativado sem implementação do lado do convidado, o comportamento do convidado SNP será ser indefinido. A inicialização do convidado SNP pode falhar de uma maneira não óbvia, dificultando a depuração.

Em vez de permitir que o convidado continue e falhe aleatoriamente mais tarde, detecte isso cedo e falhe normalmente.

O SEV_STATUS MSR indica recursos que o hypervisor habilitou. Durante a inicialização, os convidados SNP devem verificar se todos os recursos habilitados têm implementação no lado do convidado. Caso algum recurso não seja implementado no convidado, o convidado encerra a inicialização com o evento de solicitação de encerramento não automático Exit(NAE) do protocolo GHCB. Preencha SW_EXITINFO2 com a máscara de recursos não suportados que o hipervisor pode relatar facilmente ao usuário."

Isso está sendo tratado como uma correção, por isso foi escolhido para o Kernel Linux 6.2-rc6, em vez de aguardar a próxima janela de mesclagem. Por sua vez, também será portado em breve para a série de kernel Linux estável.

A solicitação pull x86/urgente do dia 29  caracterizou o problema com: " O patch SEV-SNP parece um pouco grande e talvez, à primeira vista, não seja um material realmente urgente, mas a intenção por trás dele é falhar graciosamente ao inicializar kernels mais antigos em hipervisores mais novos quando os últimos recursos de suporte que os kernels mais antigos ainda não conhecem. Portanto, ele deve ir para estável, portanto, enviá-lo agora é um momento tão bom quanto qualquer outro ... Faça com que um convidado SEV-SNP verifique explicitamente os recursos ativados pelo hipervisor e falhe graciosamente se alguns não forem suportados pelo convidado em vez de falhar de uma maneira não óbvia e difícil de depurar. "






Fonte

Até a prócima 1!

Nenhum comentário:

Postar um comentário