- O patch corrige o consumo estático excessivo de RAM ao eliminar tabelas fixas de swap que ocupavam espaço mesmo sem uso.
- A mudança impacta a performance de builds de larga escala, reduzindo o tempo de processamento de sistema em aproximadamente 16%.
- A autoria é de Kairui Song, da Tencent, fundamentada em conceitos de Chris Li e Nhat Pham sobre swap em camadas e XArrays.
- O Kernel Linux 7.0 agora utiliza alocação dinâmica via XArray para metadados de swap, permitindo dispositivos de troca virtualmente infinitos.
- A funcionalidade está prevista para chegar às versões estáveis e distribuições rolling release no primeiro semestre de 2026.
Kairui Song, desenvolvedor da Tencent, enviou uma proposta de mudança para o subsistema de memória que promete revolucionar como o sistema lida com a falta de RAM. O conjunto de 15 patches, que marca a quarta fase de reformulação da tabela de swap, introduz o conceito de arquivos de swap fantasma (ghost swapfiles) e remove estruturas estáticas de dados que consumiam memória desnecessariamente. O patch impacta o Kernel Linux 7.0 ao reduzir o tempo de processamento do sistema em até 16% em cargas de trabalho pesadas e economizar centenas de megabytes de RAM em servidores com grandes áreas de troca.
A mudança unifica o processo de alocação e cobrança de memória anônima e compartilhada (shmem), além de consolidar o rastreamento por grupos de controle (cgroups). Na prática, a implementação elimina a necessidade de tabelas fixas que cresciam proporcionalmente ao tamanho do disco de swap, permitindo que o sistema operacional gerencie espaços de troca virtualmente infinitos com overhead estático próximo de zero.
O que isso significa na prática
Para o administrador de sistemas ou usuário avançado, o impacto é duplo: eficiência e economia. Antes, ao configurar um dispositivo de swap de 1 TB, o Kernel Linux reservava automaticamente cerca de 512 MB de RAM apenas para gerenciar essa área, mesmo que ela não estivesse sendo usada. Agora, esse consumo de memória é dinâmico e quase nulo. Além disso, o sistema se torna mais resiliente sob pressão de memória extrema, reduzindo travamentos (thrashing) e eliminando erros críticos de falta de memória (OOM) que ocorriam durante a troca de páginas grandes (mTHP).
Detalhes da implementação
A arquitetura utiliza a estrutura XArray para gerenciar as informações de clusters de memória de forma dinâmica. Em vez de arrays estáticos, os metadados de swap agora são alocados sob demanda. O patch também integra o suporte para o subsistema zswap diretamente no ghost swapfile, permitindo que o Kernel Linux 7.0 utilize compressão de memória sem a necessidade de um dispositivo de bloco real ou arquivo em disco servindo de lastro, o que simplifica a configuração de sistemas que operam apenas com swap em RAM comprimida.
| Métrica de desempenho | Antes da mudança | Depois da mudança |
| Tempo de sistema (build de Kernel) | 2215.55s | 1852.14s (16.4% mais rápido) |
| Uso de memória estática (1TB swap) | 512 MB | Próximo a 0 MB |
| Performance de mTHP | Referência | ~15% de ganho |
| Alocação de memória por slot | Variável | 8 bytes (ou menos) |
Curiosidades e bastidores da discussão
A discussão na LKML revela que o projeto é fruto de uma colaboração intensa entre engenheiros de diferentes empresas. Kairui Song destacou a contribuição de Chris Li, autor da ideia original da tabela de swap em camadas, e de Nhat Pham, que sugeriu o uso de XArray para viabilizar o redimensionamento dinâmico. Um ponto de “fofoca técnica” interessante é o surgimento de um novo dispositivo especial em /dev/ghostswap, criado especificamente para facilitar os testes dessa tecnologia sem depender de ferramentas complexas de espaço de usuário. O autor mencionou que a mudança finalmente resolve um problema antigo onde falhas de memória (VM_FAULT_OOM) vazavam para os tratadores de exceção do processador.
Quando isso chega no meu PC?
A proposta está atualmente em fase de Request for Comments (RFC), o que significa que o código está estável, mas os mantenedores ainda discutem detalhes finos da API. Como os patches visam o ciclo do Kernel Linux 7.0, a expectativa é que a parte estável da fase IV da tabela de swap seja integrada na branch principal no primeiro semestre de 2026. Distribuições focadas em performance e servidores, como Fedora e Ubuntu, devem disponibilizar o recurso em suas versões de final de ano, enquanto usuários de Arch Linux poderão testar a funcionalidade via repositórios de desenvolvimento poucas semanas após a fusão oficial.
