O Linux 7.4 acelera o FAT32 em até 265x com patch de poucas linhas. Entenda o impacto real do FALLOC_FL_KEEP_SIZE, benchmarks e o que muda na prática. Confira.
Uma mudança fundida no Linux 7.4 está mostrando ganhos de velocidade consideráveis para o sistema de arquivos FAT32. O desenvolvedor de código aberto Matheus Alves de Almeida trabalhou em um patch que afeta apenas algumas linhas de código e que rende nada menos que uma melhoria de 265x para o FAT32 .
A alteração está ajustando o caminho do código de alocação do driver FAT. O status quo era realizar muitas alocações de 1 cluster ao aumentar um arquivo com FALLOC_FL_KEEP_SIZE. A flag FALLOC_FL_KEEP_SIZE é usada para pré-alocar espaço em disco para um arquivo, mas sem alterar o tamanho relatado do arquivo .
Em vez de fazer muitas alocações de um cluster, as poucas linhas de código fazem com que o driver aloque múltiplos clusters em uma única chamada . Os benchmarks compartilhados por Matheus Alves de Almeida mostram melhorias consideráveis em todos os cenários.
Os patches foram fundidos esta semana no Linux 7.4 como parte do pull request non-MM enviado por Andrew Morton .
O que realmente muda com esse patch?
Para entender a dimensão da coisa: o FAT32 é aquele sistema de arquivos que ninguém escolhe, mas todo mundo usa.
Ele está no cartão SD da sua câmera, no pendrive que você usa para atualizar o firmware do roteador e na partição EFI de qualquer PC moderno com UEFI .
Então, quando o driver FAT32 do Linux recebe uma otimização que torna uma operação até 265 vezes mais rápida, vale a pena prestar atenção — mesmo que a operação em questão não seja a que você mais usa no dia a dia.
O alvo é a fallocate(), a chamada que um programa usa para reservar espaço em disco antecipadamente. Gerenciadores de download, gravadores de vídeo e alguns bancos de dados fazem exatamente isso para evitar fragmentação e evitar ficar sem espaço no meio de uma escrita .
A flag FALLOC_FL_KEEP_SIZE permite reservar o espaço sem alterar o tamanho do arquivo que o sistema reporta .
Até agora, o driver FAT crescia o arquivo nesse modo alocando um único cluster, atualizando a tabela de alocação e voltando para o próximo. Para uma reserva de 16 MiB em um volume com clusters de 4 KB, isso significa cerca de quatro mil idas e vindas pelo mesmo caminho .
Os números que explicam o 265x
Os números da submissão são dramáticos e se dividem claramente pelo tipo de montagem:
- Montagens normais (assíncronas): aproximadamente 5x a 19x mais rápido. Uma reserva de 256 MiB em 16 arquivos com clusters de 512 bytes caiu de 2,33 segundos para 0,175 segundos .
- Montagens síncronas: 120x a 265x mais rápido. Com clusters de 4 KB, 16 arquivos de 16 MiB cada levaram 92,5 segundos antes e 0,348 segundos depois. Com clusters de 512 bytes, o mesmo trabalho caiu de 748 segundos (mais de 12 minutos) para 3,4 segundos .
O caso síncrono explode porque cada atualização da tabela de alocação precisa chegar ao disco antes que a chamada retorne. Alocar um cluster por vez significa pagar essa ida e volta milhares de vezes; agrupar tudo significa pagar apenas algumas vezes .
Produto Recomendado
Quer levar seus arquivos com você sem complicação? Com o Case para HD/SSD Externo 2.5 SATA, você transforma um HD ou SSD SATA de 2,5 polegadas em uma unidade externa prática, compacta e protegida. Ideal para backups, arquivos de trabalho, fotos, vídeos e games.
A instalação é simples: encaixe o HD/SSD no case e conecte ao computador ou notebook. O case ajuda a proteger o disco contra poeira e pequenos impactos, além de facilitar o transporte no dia a dia.
Destaques do produto:
- Compatível com HD e SSD SATA de 2,5 polegadas
- Transforma disco interno em unidade externa portátil
- Proteção extra para o seu HD/SSD
- Compacto e fácil de transportar
- Ideal para backups e armazenamento adicional
Compre agora e deixe seus arquivos sempre por perto!
👉 https://link.amazon/B04OTHIYs
Eu ganho uma comissão quando você faz uma compra.
Onde o 265x realmente se aplica (e onde não se aplica)
Aqui vai o letreiro pequeno, como diria qualquer bom texto técnico que preza pela confiabilidade: todos esses números vêm dos testes do próprio autor em uma máquina virtual QEMU/KVM com um dispositivo virtio-blk, não em um pendrive barato ou cartão de câmera, onde o comportamento do controlador de escrita domina .
O ganho é confinado à pré-alocação de espaço; cópias e escritas comuns de arquivos seguem outro caminho e não são o que essa série acelera. E o número de 265x exige uma montagem síncrona, que a maioria das distribuições desktop não usa para mídia removível .
Ainda assim, sobram beneficiários reais. As placas embarcadas e appliances que montam mídia FAT com a opção sync para sobreviver a quedas súbitas de energia são exatamente os sistemas que mais sofriam com o comportamento antigo.
Qualquer coisa que grave vídeo direto em um cartão FAT32 enquanto reserva espaço antecipadamente deve passar muito menos tempo travada no início de cada arquivo .
Contexto técnico: Por que o FALLOC_FL_KEEP_SIZE importa
A flag FALLOC_FL_KEEP_SIZE existe no Linux há anos. Ela permite que um aplicativo reserve espaço em disco sem que o tamanho do arquivo mude. Isso é útil para cargas de trabalho de acréscimo (append), onde você quer garantir que o espaço estará lá quando precisar escrever, sem inflar artificialmente o tamanho do arquivo .
No FAT32, a implementação sempre teve um custo: como o sistema não tem o conceito de extensões como o ext4, cada cluster precisa ser adicionado individualmente à cadeia FAT.
O patch de Matheus Alves de Almeida resolve isso permitindo que o driver anexe uma cadeia inteira de clusters de uma só vez .
O mesmo desenvolvedor já publicou um follow-up, agora na segunda revisão, que agrupa as escritas que o FAT faz para manter sua cópia de backup da tabela de alocação em sincronia.
Seus próprios testes mostram ganhos de cerca de 4x em montagens síncronas, sem alteração nas normais .
Checklist para copiar e colar
□ Verifique se seu kernel está na versão 7.4 ou superior para aproveitar o patch.
□ Identifique se você usa FAT32 em pendrives, cartões SD ou partições EFI.
□ Considere montagens com sync apenas em sistemas embarcados ou cenários de risco de queda de energia.
□ Para desktop e uso geral, mantenha a montagem assíncrona padrão (o ganho ainda é de 5x a 19x).
□ Acompanhe o follow-up do mesmo desenvolvedor para ganhos adicionais em sincronia de tabela FAT.
Questionário
1. O que a flag FALLOC_FL_KEEP_SIZE faz?
a) Altera o tamanho do arquivo para o espaço reservado.
b) Reserva espaço em disco sem alterar o tamanho relatado do arquivo.
c) Comprime os dados antes de gravar.
d) Remove clusters não utilizados.
Resposta correta: b) Reserva espaço em disco sem alterar o tamanho relatado do arquivo .
2. Por que o ganho de 265x aparece principalmente em montagens síncronas?
a) Porque o FAT32 só funciona em modo síncrono.
b) Porque cada alocação de cluster exige uma escrita síncrona no disco, e o patch agrupa várias alocações em uma chamada.
c) Porque o kernel 7.4 desativou o modo assíncrono.
d) Porque os testes foram feitos apenas em pendrives.
Resposta correta: b) Porque cada alocação de cluster exige uma escrita síncrona no disco, e o patch agrupa várias alocações em uma chamada .
3. O ganho de 265x se aplica à cópia comum de arquivos no dia a dia?
a) Sim, qualquer cópia de arquivo fica 265x mais rápida.
b) Não, o ganho é específico para pré-alocação de espaço via fallocate() com FALLOC_FL_KEEP_SIZE.
c) Sim, mas apenas para arquivos maiores que 1 GB.
d) Não, o patch não foi fundido no kernel.
Resposta correta: b) Não, o ganho é específico para pré-alocação de espaço via fallocate() com FALLOC_FL_KEEP_SIZE .
Conclusão
O patch de Matheus Alves de Almeida no Linux 7.4 mostra como poucas linhas de código podem render muito: ao agrupar alocações de clusters em uma só chamada, o FAT32 fica até 265x mais rápido em montagens síncronas (e de 5x a 19x nas assíncronas).
O ganho, porém, é específico para pré-alocação com FALLOC_FL_KEEP_SIZE — não para cópias comuns — e o número máximo exige montagem síncrona. Quem sente de verdade são sistemas embarcados e aplicações que reservam espaço antes de gravar em cartões e pendrives.
No fim, é um lembrete de que o FAT32 segue relevante e que otimizações bem direcionadas ainda valem a pena.

Nenhum comentário:
Postar um comentário