FERRAMENTAS LINUX: O Call Depth Track está chegando ao Linux 6.2 para ajudar a recuperar o desempenho nas CPUs da era Skylake

quarta-feira, 14 de dezembro de 2022

O Call Depth Track está chegando ao Linux 6.2 para ajudar a recuperar o desempenho nas CPUs da era Skylake


 O trabalho dos engenheiros da Intel nos últimos meses no Call Depth Tracking como uma mitigação menos dispendiosa para o Retbleed nos processadores da era Skylake agora está definido para ser mesclado para o kernel Linux 6.2.

A mitigação do Call Depth Tracking para Retbleed destina-se a ser uma correção menos dispendiosa para Retbleed em CPUs baseadas em Skylake do que ter que habilitar Indirect Branch Restricted Speculation (IBRS).

O Call Depth Tracking é uma mitigação puramente baseada em software que é mais leve e custa menos do que habilitar IBRS em núcleos de CPU baseados em Skylake, onde o impacto no desempenho pode ser muito significativo. A abordagem Call Depth Tracking é descrita como:

O que ele basicamente faz é alinhar todas as funções do kernel ao limite de 16 bytes e adicionar um preenchimento de 16 bytes antes da função, objtool coleta os locais de todas as funções e quando a mitigação é aplicada, ele corrige um thunk de contabilidade de chamada que é usado para rastrear a profundidade de chamada da pilha a qualquer momento.

Quando essa profundidade de chamada atinge um valor mágico específico da microarquitetura para o Return Stack Buffer, o código preenche esse RSB e evita seu subfluxo que poderia levar à variante Intel de Retbleed.

Esta solução apenas de software traz de volta muito do desempenho perdido...


Essa alteração para o Linux 6.2 deve ajudar significativamente os sistemas Skylake e outras CPUs Intel derivadas do Skylake. Ter que usar o IBRS desde que Retbleed se tornou público foi descrito pelos desenvolvedores do kernel como um " show de terror de desempenho ", o impacto existente no desempenho foi criticado por um engenheiro da VMware e tem sido uma fonte de frustração nos últimos meses para aqueles que ainda dependem de CPUs Intel mais antigas. Retbleed foi tornado público em julho como uma execução especulativa arbitrária por meio de instruções de retorno .

Mas agora, felizmente, com o Kernel Linux 6.2, o impacto da mitigação será reduzido para aqueles que executam sistemas baseados em Skylake até que seja possível atualizar.

O Call Depth Tracking foi enviado esta manhã como parte das atualizações do x86/core . Também com esta solicitação de pull está a fusão do FineIBT como um esquema de integridade do fluxo de controle usando o CFI do kernel baseado em software e o suporte de IBT (Indirect Branch Tracking) de hardware.

No momento, pelo menos, o Call Depth Tracking não está ativado por padrão nos processadores Skylake, mas requer o uso da opção de kernel retbleed=stuff .







Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário