Linux Kernel

Linux 6.12: terá controle refinado sobre as mitigações de CPU

O Linux 6.12 introduz novas opções de compilação para um controle mais refinado sobre as mitigações de CPU. Este post explora como você pode usar essas opções para personalizar seu sistema operacional.

Linux Kernel 6.12

O Linux 6.12 chegará com uma série de novas opções de compilação que permitem um controle mais refinado sobre as mitigações de CPU. Essas opções são uma adição bem-vinda, pois permitem aos usuários e administradores ajustar o sistema operacional para atender às suas necessidades específicas.

As mitigações de CPU são projetadas para proteger seu sistema contra várias vulnerabilidades de segurança. No entanto, essas proteções podem ter um impacto no desempenho do sistema. Com o Linux 6.12, você tem a capacidade de ajustar essas configurações para encontrar o equilíbrio certo entre segurança e desempenho.

Por exemplo, você pode optar por habilitar todas as mitigações para obter a máxima segurança. Alternativamente, você pode optar por desabilitar algumas mitigações se estiver disposto a aceitar um certo nível de risco em troca de um melhor desempenho do sistema.

É importante notar que essas opções de compilação não são uma solução única para todos. Cada sistema e aplicação tem suas próprias necessidades e considerações únicas. Portanto, é essencial entender completamente as implicações de cada opção antes de fazer alterações.

O Linux 6.12 oferece um controle mais granular sobre as mitigações de CPU, permitindo que você personalize seu sistema operacional para atender às suas necessidades específicas.

Entenda a novidade do Linux 6.12

O namespace CONFIG_SPECULATION_MITIGATIONS atual está apenas parcialmente preenchido. Algumas mitigações têm entradas em Kconfig e podem ser modificadas, enquanto outras mitigações não têm entradas Kconfig e não podem ser controladas no momento da compilação.

Novas mitigações, como BHI, foram adequadamente adicionadas, ou seja, possuem um Kconfig independente, que depende do CONFIG_SPECULATION_MITIGATIONS, permitindo que você habilite/desabilite no momento da compilação.

Este conjunto de patches visa ter as antigas mitigações no mesmo formato, trazendo alguma uniformidade para as mitigações. Aqui estão as vantagens de ter um controle mais refinado para as mitigações:

  1. Os usuários podem escolher e selecionar apenas as mitigações importantes para suas cargas de trabalho.
  2. Os usuários e desenvolvedores podem optar por desabilitar as mitigações que alteram a geração de código de montagem, tornando-o difícil de ler.
  3. Kconfigs separados apenas para a legibilidade do código-fonte, para que possamos ver qualquer “código feio” e por qual motivo…

Geralmente, se uma mitigação é desativada no momento da compilação, ela ainda pode ser ativada no momento da execução usando argumentos de linha de comando do kernel.

Este é o segundo conjunto de patches que foi parcialmente implementado. O primeiro patch fez alguma reorganização de código. Esta segunda parte contém os patches exatos que faltavam no conjunto de patches inicial e basicamente adiciona configuração de tempo de compilação para as outras mitigações que atualmente só são desativadas no momento da inicialização.

Com este patch aplicado, definindo CONFIG_SPECULATION_MITIGATIONS=n, um script simples mostra que todas as mitigações estão desativadas.

Essas mudanças afetam o desempenho do sistema?

As mitigações de CPU são projetadas para proteger seu sistema contra várias vulnerabilidades de segurança. No entanto, essas proteções podem ter um impacto no desempenho do sistema. Com o Linux 6.12, você tem a capacidade de ajustar essas configurações para encontrar o equilíbrio certo entre segurança e desempenho.

Por exemplo, a mitigação da vulnerabilidade de segurança da Intel chamada Downfall pode resultar em uma queda de desempenho de até 39%. Especificamente, o impacto no desempenho pode ser de até 50% em cargas de trabalho AVX2 e AVX-512 que envolvem a instrução Gather.

Além disso, o site Phoronix, avaliou o impacto das mitigações Downfall no Linux. Eles testaram um par de processadores Xeon Platinum 8380 (Ice Lake), um chip Xeon Gold 6226R (Cascade Lake) e uma parte Core i7-1165G7 (Tiger Lake). Eles registraram quedas de desempenho de até 34%.

Portanto, embora as mitigações de CPU sejam essenciais para a segurança do sistema, elas podem ter um impacto significativo no desempenho. Com o Linux 6.12, você tem a opção de ajustar essas mitigações para equilibrar suas necessidades de segurança e desempenho. No entanto, é importante entender completamente as implicações de cada opção antes de fazer alterações.

Vamos acompanhar as novidades que ainda estão por vir!