FERRAMENTAS LINUX: Drama do Kernel do Linux: O Spectral Chicken da AMD

quinta-feira, 27 de abril de 2023

Drama do Kernel do Linux: O Spectral Chicken da AMD

 

Há um pouco de código do kernel Linux para processadores AMD Zen 2 chamado de "galinha espectral" e um pedido para limpar esse código, que foi originalmente escrito por um engenheiro da Intel Linux, foi rejeitado.

Dentro do arquivo de cabeçalho Linux x86 para MSRs existe o "ZEN2_SPECTRAL_CHICKEN" e dentro do caminho de código da CPU AMD há um código para lidar com este pedaço de frango e um comentário de código: " No Zen2, oferecemos este frango (bit) no altar da especulação. Isso suprime a especulação do meio de um bloco básico, ou seja, suprime as previsões que não são ramificações. Usamos o STIBP como uma heurística para filtrar o Zen2 do resto do F17H. " Borislav Petkov, um antigo engenheiro do Linux que trabalhou originalmente para a AMD há mais de uma década desde então fechando AMD Operating System Research Center e anos desde então foi empregado pela SUSE enquanto alguns meses atrás voltou a se juntar à AMD , procurou limpar esse código AMD Spectral Chicken.

Ele enviou um patch com a mensagem:

"Já nos divertimos bastante com o bit de galinha espectral - nomeie o que ele realmente faz: ele suprime as previsões não ramificadas.

Renomear define para deixar claro que é apenas Zen2.

Sem alterações funcionais."

O bit MSR do frango espectral AMD Zen 2 foi renomeado para "ZEN2_DE_CFG2" e "ZEN2_DE_CFG2_SUPPRESS_NOBR_PRED", além de limpar o comentário do código para se referir a ele como supressor de especulações para previsões não ramificadas. Embora nada muito dramático sobre essa mudança não funcional, o autor original desse código era um engenheiro da Intel.

Peter Zijlstra respondeu :

"NAK [Not Acknowledge], eu tive que escrever tudo isso sem *nenhuma* comunicação oficial da AMD, principalmente por ouvir dizer.

Isso será a galinha espectral para sempre como punição. Da próxima vez, a AMD pode tentar novamente, e se eles conseguir agir em conjunto e publicar algo antes de eu começar a escrever o código e inventar um nome para uma parte mágica, eles podem nomeá-lo como quiserem."

Ao que Petkov levantou que é improvável que Peter precise escrever tal código novamente, ao que Thomas Gleixner chamou isso de uma suposição puramente especulativa.

Para aqueles que não sabem, um pedaço de frango (chicken bit) normalmente se refere a um pouco que pode ser usado para desabilitar alguma funcionalidade do chip, caso seja defeituoso ou problemático.


Portanto, parece que o código do frango espectral da AMD permanecerá no kernel do Linux para uma diversão um pouco mais leve.

Este código foi originalmente criado por um engenheiro da Intel Linux como parte dos esforços de execução especulativa e, na época, a AMD tinha menos engenheiros Linux do que agora. Nos últimos anos, a AMD aumentou a sua equipe de engenharia Linux para lidar melhor com suas contribuições de kernel Linux e a ativação oportuna de novos recursos para Ryzen e EPYC. As contribuições do kernel Linux da AMD aumentaram significativamente nos últimos tempos e para aprimorar suas gerações recentes de produtos. Portanto, da próxima vez que esse problema surgir, se for resolvido diretamente pelos engenheiros da AMD, eles poderão nomear os bits que desejarem, enquanto o Zen 2 Spectral Chicken parece que permanecerá inalterado.





Fonte

Até a próxima 

Nenhum comentário:

Postar um comentário