Enfileirado como parte das mudanças x86/core destinadas ao ciclo do Linux 5.17 está a retirada do AMD 3DNow! código dentro do kernel. Enquanto 3DNow! traz de volta boas memórias da época dos processadores AMD K6 e dos primeiros processadores Athlon, a AMD descontinuou as instruções há uma década e não as colocou mais em processadores mais novos. Removendo o 3DNow! o código do kernel está sendo feito como parte de algumas melhorias de código.
Atingir o branch x86/core do tip é este commit eliminando o 3DNow! código do kernel. 3DNow! construído sobre o conjunto de instruções MMX para oferecer desempenho mais rápido para processamento vetorial de dados de ponto flutuante. Porém, o 3DNow! no final das contas, não possui muita adoção em meio ao lançamento bem-sucedido do SSE da Intel.
Kernel Linux vai finalmente aposentar o AMD 3DNow!
A opção X86_USE_3DNOW foi removida, o padrão foi ativado para compilações de kernel voltadas para processadores agora antigos, como Geode LX, K7 e Cyrix III. Esta opção X86_USE_3DNOW habilitou o 3DNow! código da biblioteca auxiliar no kernel e permitido para MMX 3DNow! uso acelerado de memcpy e limpeza e cópia aceleradas de páginas.
Removendo este 3DNow! o suporte do kernel permite liberar cerca de 500 linhas de código que estavam no kernel por mais de duas décadas. 3DNow! foi encontrado em processadores AMD do K6-2 até Bulldozer, onde foi aposentado. Agora é hora de deixar o código do kernel ir em 2022 com o ciclo do Linux 5.17.
Mitigação de especulação de linha x86 no caminho para Linux 5.17
A atividade recente em torno do x86 (x86_64 incluído) tratamento de mitigação de especulação está configurada para culminar com este recurso de segurança sendo configurado para a linha principal com o próximo ciclo do Linux 5.17. Nas últimas semanas, assistimos a mitigações de especulação em linha reta x86 em andamento por desenvolvedores de compiladores e o pessoal do kernel do Linux. Isso é semelhante à vulnerabilidade e mitigação da especulação linear “SLS” do Arm do ano passado, mas agora vendo atividade semelhante na frente do x86/x86_64 para Intel e AMD.
O problema em questão é sobre os processadores que executam instruções especulativamente de forma linear na memória após uma mudança incondicional no fluxo de controle. O GCC 12 lançou sua opção de mitigação do compilador e o LLVM Clang está fazendo o mesmo. Os compiladores estão introduzindo uma opção “-mharden-sls” para adicionar instruções INT3 após o retorno da função e desvios indiretos para proteger contra possível especulação em linha reta.
Outros detalhes
Os patches do kernel do Linux são basicamente para habilitar essa opção de proteção SLS para compilações de kernel. Os patches do kernel habilitam essa proteção quando em uma versão de kernel com suporte (GCC 12+ e presumivelmente Clang 14+) e quando usando uma compilação de kernel com Retpolines (trampolins de retorno) habilitado.
Confirmando isso agora para o Linux 5.17, os patches de mitigação x86 SLS foram mesclados no branch “x86/core” do TIP. A opção SLS é adicionada com o novo switch de tempo de construção “SLS” Kconfig. Esta mitigação tem uma consequência conhecida de aumentar o tamanho do texto para imagens do kernel do Linux em cerca de 2,4% devido às instruções adicionais geradas. A ramificação x86/core também possui os outros patches relacionados ao SLS para objtool, preparando o código do Assembly para a mitigação, e outras alterações do código x86 se preparando para a mitigação do SLS.
Via Phoronix