Otimizações sutis no sistema de arquivos virtual (VFS) chegam ao kernel Linux 6.15

2 min

Pequenas, mas significativas melhorias de performance para as operações de arquivos no Virtual File-System (VFS) foram integradas ao Linux 6.15. Essa atualização faz parte de um conjunto de mudanças submetidas e já incorporadas ao kernel.

Um dos envios mais notáveis para o Linux 6.15, liderado pelo engenheiro de kernel da Microsoft, Christian Brauner, foi a implementação de suporte a tamanhos de bloco maiores que os tamanhos de página. Paralelamente, a integração de otimizações no subsistema de arquivos do VFS, embora pareçam modestas à primeira vista, merecem destaque por seus ganhos de performance. Afinal, toda e qualquer otimização no desempenho do kernel é bem-vinda.

Christian Brauner resumiu o trabalho de otimização do VFS, desenvolvido por Mateusz Guzik, da seguinte forma:

“Este conjunto de alterações traz melhorias de desempenho para o novo mecanismo de contagem de referências da estrutura file, além de outros trabalhos focados em performance:

  • O kernel padrão, ao transicionar um arquivo para o estado sem referências, impõe uma penalidade ao chamador com uma operação atômica extra para bloquear quaisquer incrementos futuros. Em cenários onde o arquivo provavelmente será descartado em breve, essa sobrecarga pode ser evitada. Para otimizar o caso comum em que o fechamento de um descritor de arquivo também opera na última referência, foi adicionada a função file_ref_put_close(). As funções fput_close_sync() e fput_close() foram construídas sobre essa nova base. Essa mudança proporciona uma melhoria de performance de aproximadamente 1%, eliminando uma operação atômica no caso mais frequente.
  • Implementamos uma previsão de ausência de erros na chamada de sistema close(), visto que na grande maioria das vezes ela retorna 0.
  • O trabalho realizado em fdget_pos() foi reduzido através da previsão de que o arquivo será encontrado, da comparação explícita da contagem de referências com o valor um e da exclusão da ‘zona morta’.”

Para obter todos os detalhes sobre essas alterações que agora fazem parte do código principal do Linux 6.15, você pode consultar este pull request.

Compartilhe este artigo