FERRAMENTAS LINUX: O Kernel Linux 6.6 evitará o Kernel Panic desnecessário em sistemas AMD Zen

terça-feira, 29 de agosto de 2023

O Kernel Linux 6.6 evitará o Kernel Panic desnecessário em sistemas AMD Zen



Como parte das atualizações direcionadas à Confiabilidade, Disponibilidade e Capacidade de Manutenção (RAS), enviadas na data atual para o kernel Linux 6.6, uma adição notável destaca-se: uma solução alternativa cuidadosamente projetada para lidar com um bug específico nos processadores AMD Zen atuais. 

Esse bug, quando não tratado, poderia resultar no aumento incorreto da gravidade do erro e, consequentemente, gerar um pânico desnecessário no kernel.

Uma solução já está a caminho do kernel, destinada a tratar a potencial elevação incorreta da gravidade do erro RAS, que pode disparar pânicos desnecessários no sistema operacional.

O problema e a peculiaridade resultante são explicados em detalhes no patch correspondente:

"Nas unidades de busca de instrução (IF) presentes nos sistemas baseados em AMD Zen atuais, não é garantido que um #MC (Machine Check) síncrono seja entregue para erros de consumo venenoso. Consequentemente, MCG_STATUS[EIPV|RIPV] não será sinalizado. Porém, a microarquitetura garante que a exceção seja entregue no mesmo contexto. Em outras palavras, o endereço exato de instrução (rIP) não é identificado, mas a continuidade do contexto é mantida. Infelizmente, a arquitetura não fornece um método definido para determinar esse comportamento.

O registro do segmento de código (CS) é sempre válido em erros de consumo venenoso na unidade IF baseada em AMD Zen, independentemente do valor de MCG_STATUS[EIPV|RIPV].

Uma solução alternativa foi implementada para capturar o registro CS durante o tratamento de erros de consumo venenoso nas unidades IF.

Essa solução é aplicada especificamente às famílias de CPUs afetadas.

Tal abordagem é essencial para determinar com precisão o contexto do erro. Caso contrário, o mecanismo de avaliação de gravidade supõe que o contexto é IN_KERNEL devido ao valor de m->cs ser 0 (valor inicializado). Isso, por sua vez, conduz a pânicos desnecessários no kernel em casos de erros de envenenamento de dados, uma vez que o kernel erroneamente considera que o envenenamento ocorreu no contexto do kernel."

A solução desenvolvida para evitar o aumento incorreto da gravidade de erros e pânicos desnecessários do kernel em sistemas AMD Zen foi incluída como uma das duas modificações RAS/core para o Linux 6.6. Além disso, o patch está marcado para ser incorporado em versões estáveis do kernel Linux em um futuro próximo.





Fonte

Até a próxima !!





Nenhum comentário:

Postar um comentário