Fundido no domingo antes de marcar o 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 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 que adiciona este suporte de negociação de recurso de convidado SEV-SNP:

“O hipervisor pode habilitar vários novos recursos (SEV_FEATURES[1:63]) e iniciar o SNP convidado. 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á indefinido. A inicialização do convidado SNP pode falhar de maneira não óbvia, dificultando a depuração.

Em vez de permitir que o convidado continue e falhe aleatoriamente mais tarde, detecte isso com antecedência e falhe normalmente.

SEV_STATUS MSR indica os recursos que o hypervisor habilitou. Durante a inicialização, os convidados SNP devem verificar se todos os recursos habilitados têm implementação do lado do convidado. Caso algum recurso não seja implementado no convidado, o convidado termina a inicialização com o evento de solicitação de encerramento não automático Exit(NAE) do protocolo GHCB. Preencher SW_EX ITINFO2 com 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 Linux 6.2-rc6 em vez de aguardar o próxima janela de mesclagem. Por sua vez, também será portado em breve para a série de kernel Linux estável.
O x86/urgent pull request de ontem 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 suportam recursos que esses kernels mais antigos ainda não conhecem. 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 normalmente se alguns não forem suportados pelo convidado, em vez de falhar de maneira não óbvia e difícil-para-depurar.”

Categories: IT Info