Patches postados para remover o alocador SLAB do kernel Linux
A partir do lançamento do kernel Linux 6.5 no verão, o alocador SLAB foi formalmente descontinuado. Esta decisão foi precedida pela obsolescência do SLOB e pelo esforço para incentivar todos os usuários Linux a adotarem o alocador SLUB. Recentemente, patches foram enviados para remover totalmente o alocador SLAB da base de código principal do kernel.
Após a descontinuação do alocador SLAB no kernel Linux, os desenvolvedores buscaram informações dos usuários sobre sua necessidade contínua. Apesar de vários meses terem decorrido desde esta solicitação, nenhum feedback substancial foi recebido, levando os mantenedores do kernel upstream a considerar a remoção total do SLAB, semelhante ao destino da arquitetura IA-64. Uma proposta de patch recente busca eliminar o SLAB da base de código-fonte do kernel.
A remoção do código alocador SLAB do kernel Linux libera uma quantidade substancial de código-fonte, excedendo quatro mil linhas de comprimento. Embora esta redução possa parecer modesta quando comparada com a magnitude global do kernel, ela representa uma contribuição notável para eliminar a dívida técnica e conceder aos engenheiros do kernel a flexibilidade para melhorar o SLUB sem preocupações sobre possíveis interrupções na funcionalidade existente ou encargos de manutenção associados a esse determinado componente.
Vlastimil Babka escreveu no SLAB de remoção de patches:
Desde a descontinuação do alocador SLAB na versão 6.5, nenhuma objeção foi levantada até o momento. Conforme discutido anteriormente na reunião LSF/MM, é recomendado adiar sua remoção até o lançamento do próximo kernel Long Term Support (LTS), que ainda não foi anunciado oficialmente, mas está previsto para ser a versão 6.7. Assumindo esse cronograma, planos podem ser feitos para começar a alertar os usuários sobre a remoção iminente durante o ciclo de desenvolvimento 6.7, visando uma data de início da versão 6.8.
Para evitar que a série se torne excessivamente complicada e evitar o envolvimento de indivíduos de subsistemas não relacionados, evitei eliminar todas as referências a definições de configuração obsoletas que possam existir fora do MM e seus associados imediatos. Estas tarefas podem ser delegadas aos seus respectivos mantenedores para maior atenção assim que esta integração for concluída.
Em vez de realizar uma revisão abrangente, implementei uma série de ajustes direcionados destinados a capitalizar certas vantagens associadas à eliminação desta função. Especificamente, essas mudanças eliminam a necessidade de duplicação de algum código de “caminho rápido” tanto nolab\_common.c quanto no slub.c. No entanto, deve notar-se que os meus esforços actuais representam apenas uma solução parcial, e é provável que surjam mais refinamentos e melhorias no devido tempo.
À luz de uma execução bem-sucedida, é concebível que o próximo Linux 6.8 marque a eliminação total do SLAB, que tem servido como padrão desde o início do kernel Linux 2.6.23.
*️⃣ Link da fonte: