Kernel Linux 7.3 reduzirá em até 90% a latência em cargas de trabalho na arquitetura x86

Kernel Linux 7.3 reduzirá em até 90% a latência em cargas de trabalho na arquitetura x86

A próxima versão do Kernel Linux integrará otimizações substanciais no subsistema de gerenciamento de memória da arquitetura x86 (x86/mm).As mudanças reduzem o tempo em que o processador permanece bloqueado durante certas rotinas de baixo nível, diminuindo a latência de agendamento em até 90% em cenários específicos. A melhoria beneficia diretamente servidores, infraestrutura de rede de alto desempenho e aplicações estritamente sensíveis ao tempo de resposta.

O que isso muda na prática

Sistemas operacionais e processadores precisam limpar temporariamente certos caches de memória (como o TLB) para manter os dados consistentes. Na arquitetura x86-64, essa operação exige que a unidade de processamento se comunique com outros núcleos por meio de interrupções.

Antes do Linux 7.3, enquanto aguardava a conclusão dessa comunicação, o núcleo que solicitou a limpeza ficava bloqueado e impedia que tarefas urgentes fossem processadas. Na prática, aplicações em tempo real podiam sofrer um “engasgo” de milissegundos — o que é uma eternidade para plataformas de rede que processam milhões de pacotes por segundo. A mudança permite que tarefas prioritárias assumam o processador, mesmo durante essas esperas.

O gargalo nas interrupções interprocessador (IPI)

1dAHabYW linux 7 3 reduz latencia
Kernel Linux 7.3 reduzirá em até 90% a latência em cargas de trabalho na arquitetura x86 3

A otimização, que superou dez rodadas de revisão na lista de discussão do kernel, foi desenvolvida pelo engenheiro Chuyi Zhou, da ByteDance. O foco central das correções aborda a mecânica das funções da família smp_call_function*().

Na arquitetura x86-64, as limpezas no Translation Lookaside Buffer (TLB) ocorrem por meio de Inter-Processor Interrupts (IPIs). O grande problema identificado ocorria durante o encerramento de processos ou na recuperação de páginas de memória. Nesses momentos, a CPU emissora precisava aguardar a execução das funções de IPI em múltiplos núcleos remotos operando com a preempção desativada. O resultado direto desse bloqueio era uma escalada agressiva na latência de agendamento de outras threads no mesmo núcleo.

Em máquinas de produção de 16 núcleos utilizadas pela ByteDance, a equipe chegou a observar picos de latência de agendamento alcançando a marca de 16 milissegundos devido à espera pelo IPI. Para cargas de trabalho rigorosas como o Data Plane Development Kit (DPDK) configuradas com a prioridade mais alta justamente para operar sem interrupções indesejadas, a incapacidade do núcleo de suspender a espera representava um gargalo estrutural.

O impacto das correções

Com a integração do código, o Kernel Linux 7.3 passará a permitir a preempção durante a espera pela conclusão dos IPIs em caminhos críticos como arch_tlbbatch_flush e flush_tlb_mm_range.

Segundo os testes do desenvolvedor em ambiente de produção, a janela máxima em que o núcleo permanece bloqueado (com preempção desativada) caiu de 16ms para menos de 1ms.Avaliando o percentil 99 (P99) das operações em intervalos contínuos de 30 segundos, o bloqueio máximo agora flutua em torno de 1,5 milissegundos. O restante da latência observada passa a ser originado quase exclusivamente por disputa de acessos (lock contention).

Dave Hansen, engenheiro da Intel e atual responsável por submeter as solicitações de integração (pull requests) da árvore x86 para o braço principal do Kernel, pontuou que a implementação exigirá monitoramento de perto. Embora os ganhos em ambientes otimizados para rede sejam notáveis, a mudança na forma como o kernel aguarda IPIs é abrangente e o risco de regressões inesperadas em outras categorias de uso não foi descartado pelos mantenedores.

O Kernel Linux 7.3 encontra-se em sua fase de integração e terá testes mais amplos (RCs) liberados ao longo das próximas semanas.