Por que o Kernel Linux 7.0-rc1 agora precisa “adivinhar” como o hardware da Intel funciona

Peter Zijlstra introduz patch para resolver a "bagunça de topologia" em sistemas Intel modernos!

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...
  • O patch resolve a falha de CPUs Intel em enumerar corretamente a topologia Sub-NUMA Clustering (SNC) na inicialização.
  • A nova técnica de "adivinhação" utiliza tabelas ACPI MADT e SRAT para reconstruir o mapa interno do processador.
  • Peter Zijlstra, da Intel, é o autor da solução que visa eliminar a latência em servidores de alta densidade.
  • A mudança introduz o domínio TOPO_NUMA_DOMAIN para evitar que o agendador de tarefas tome decisões ineficientes.
  • A melhoria está integrada ao Kernel Linux 7.0-rc1, com lançamento estável previsto para abril de 2026.

O desenvolvedor Peter Zijlstra, da Intel, enviou um conjunto de patches para o Kernel Linux 7.0-rc1 que introduz uma técnica de “adivinhação” (divination) para identificar corretamente a topologia de Sub-NUMA Clustering (SNC). O patch corrige falhas onde o hardware falha em enumerar seus próprios estados de agrupamento, forçando o sistema operacional a deduzir a estrutura interna para evitar perdas de desempenho em sistemas de alta densidade.

O que isso significa na prática

Em computadores de alto desempenho, como servidores, os núcleos de processamento são organizados em grupos (nós NUMA) para otimizar o acesso à memória. O Sub-NUMA Clustering (SNC) é uma tecnologia da Intel que subdivide esses grupos para reduzir ainda mais a latência. No entanto, em chips modernos, o hardware nem sempre “conta” ao sistema operacional como essa divisão foi feita. Sem essa informação, o Kernel Linux 7.0-rc1 poderia tomar decisões erradas, enviando dados por caminhos mais longos dentro do chip, o que causa lentidão. A “adivinhação” de Zijlstra permite que o kernel use outras pistas do sistema para reconstruir esse mapa e manter a velocidade máxima.

Vale lembrar que, como acompanhamos anteriormente no SempreUpdate, o Kernel Linux 7.0 já introduziu o Cache-Aware Scheduling para agrupar tarefas no mesmo cache. Este novo patch de SNC é a peça que faltava para garantir que a ‘adivinhação’ da topologia seja precisa, permitindo que o escalonador extraia o máximo de performance do hardware.

Detalhes da implementação

A solução de Zijlstra foca em utilizar as tabelas ACPI MADT (Multiple APIC Description Table) e SRAT (System Resource Affinity Table) para calcular o número de nós por pacote físico antes mesmo da ativação total dos núcleos (SMP bringup). Historicamente, o kernel confiava em registros MSR ou na instrução CPUID, mas esses métodos tornaram-se pouco confiáveis em cenários onde alguns núcleos estão offline ou a BIOS não preenche os campos corretamente.

O patch introduz o TOPO_NUMA_DOMAIN, um novo nível na hierarquia de topologia x86. Ao preservar uma cópia física da tabela SRAT (evitando que a emulação de NUMA a corrompa), o kernel consegue derivar a variável __num_nodes_per_package de forma independente. Isso permite que o agendador de tarefas e o subsistema resctrl ajustem o monitoramento de recursos (RDT) de acordo com a realidade física do silício.

Curiosidades e bastidores da discussão

A discussão na LKML expôs o que Zijlstra chamou de “bagunça de topologia” (topology mess). O gatilho para o patch foi a descoberta de que sistemas de grande porte, como servidores da HPE com 8 sockets, estavam quebrando as premissas do Kernel Linux.

Anteriormente, o código assumia que o SNC-3 (divisão em 3 partes) não ocorreria em máquinas com muitos pacotes físicos. Quando a HPE apresentou um hardware que misturava SNC-2 com distâncias de memória assimétricas entre chassis, o kernel “entrou em pânico” técnico. Zijlstra propôs ignorar as métricas confusas do hardware e usar uma média matemática das distâncias para restaurar a simetria no agendador, essencialmente dizendo: “já que o hardware não ajuda, o software vai padronizar”.

Quando isso chega no meu PC?

O recurso está integrado ao ciclo de desenvolvimento do Kernel Linux 7.0-rc1. Se os testes de estabilidade seguirem o cronograma padrão de Linus Torvalds, a versão final 7.0 deve ser lançada em abril de 2026. Usuários de servidores que utilizam distribuições como Ubuntu 26.04 LTS ou Fedora 44 serão os principais beneficiados, recebendo a atualização no segundo semestre de 2026.

Compartilhe este artigo
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre GNU/Linux, Software Livre e Código Aberto, dedica-se a descomplicar o universo tecnológico para entusiastas e profissionais. Seu foco é em notícias, tutoriais e análises aprofundadas, promovendo o conhecimento e a liberdade digital no Brasil.