O ciclo de desenvolvimento do futuro Kernel Linux 7.4 acaba de registrar um refinamento de código que chamou a atenção de toda a comunidade de software livre: uma melhoria pontual no alocador de memória inicial reduziu o tempo de inicialização em ambientes com intensa fragmentação, como grandes servidores, de 268 segundos (quase quatro minutos e meio) para 50 milissegundos (0,05 segundos).
O conjunto de patches foi submetido pelo engenheiro Tarun Sahu e publicado nos arquivos da lista de discussão oficial do Kernel Linux (LKML). A mudança ataca diretamente uma das maiores dores de cabeça enfrentadas por servidores de computação em nuvem em hiperescala, estações de trabalho profissionais com arquitetura NUMA e supercomputadores munidos de múltiplos terabytes de memória RAM.
O gargalo oculto no memblock.c
Durante a fase mais precoce da inicialização do kernel — quando o gerenciador de páginas principal (page allocator) sequer começou a operar, o Linux depende de um alocador transitório chamado Memblock. Sua função primordial é mapear quais blocos de memória física estão livres e quais estão reservados pelo firmware, BIOS ou UEFI.
Tradicionalmente, a verificação e a adição dessas faixas de endereços utilizavam uma busca puramente linear. Em desktops e notebooks domésticos comuns com 16 GB ou 32 GB de memória, essa varredura sequencial passava completamente despercebida, levando frações mínimas de tempo.
No entanto, com a chegada de tecnologias de ponta como o recurso Kernel Handover (KHO), projetado para preservar o estado de instâncias de máquinas virtuais na memória enquanto o kernel é reiniciado a quente, o número de blocos e folhas de memória desconexas aumentou muito. Com milhares de intervalos fragmentados, a busca linear do Memblock transformava o boot em um pesadelo computacional, travando a CPU por minutos.
A eficiência matemática da busca binária
A solução desenvolvida para o Linux 7.4 reformulou funções críticas como memblock_add_range e memblock_isolate_range, substituindo a iteração linear por uma busca binária sobre as regiões previamente ordenadas da tabela de memória física.
Os ganhos práticos revelados nos testes de regressão foram expressivos:
- Complexidade reduzida: A pior hipótese de varredura caiu para O(N log N).
- Queda vertiginosa de latência: O tempo de processamento das faixas reservadas despencou de 268,4s para 0,051s.
- Reinicializações instantâneas: Acelerou drasticamente tarefas de manutenção com kexec e migrações a quente de infraestruturas em nuvem.
O avanço na gestão inteligente da memória se une a outras inovações recentes que vêm transformando o setor, a exemplo do novo mecanismo CRAM da Meta para compressão de RAM no kernel. A alteração já foi acolhida na árvore do mantenedor Andrew Morton e estará disponível para todos os usuários assim que o Kernel 7.4 atingir a fase estável.
Fique por dentro das principais novidades da semana sobre tecnologia e Linux: receba nossa newsletter!