- O Kernel Linux 7.0-rc1 agora respeita os limites preferenciais de hardware para operações de descarte (TRIM) em SSDs NVMe.
- A mudança reduz o "Write Amplification" e o desgaste desnecessário das células de memória flash, prolongando a vida útil do drive.
- Desenvolvido por Caleb Sander Mateos (Pure Storage), o patch resolve inconsistências entre o sistema e a especificação NVMe 2.1.
- O driver agora consulta campos de 32 bits (NPDGL/NPDAL) para alinhar a limpeza de dados à estrutura física real do SSD.
- A novidade deve chegar como versão estável em maio de 2026, beneficiando inicialmente usuários de distros Rolling Release.
O desenvolvedor Caleb Sander Mateos, da Pure Storage, enviou uma série de patches para o subsistema NVMe que altera a forma como o sistema lida com a granularidade de descarte (discard_granularity). A mudança, integrada ao ciclo do Kernel Linux 7.0-rc1, permite que o sistema operacional identifique com precisão os limites preferenciais de hardware para operações de limpeza de dados, resultando em um gerenciamento de armazenamento mais eficiente e potencialmente aumentando a vida útil de drives modernos.
O que isso significa na prática
Quando você deleta um arquivo em um SSD, o sistema operacional envia um comando chamado “discard” (ou TRIM) para informar ao drive que aqueles blocos não são mais necessários. Até agora, o Kernel Linux geralmente assumia que essa operação deveria ser alinhada ao tamanho do bloco lógico do disco. No entanto, SSDs modernos possuem estruturas internas muito maiores. Com este patch, o Kernel Linux 7.0-rc1 passa a consultar campos específicos do hardware (NPDG e NPDA) para entender a “vontade” do fabricante. Na prática, isso evita que o SSD precise realizar operações extras de limpeza interna desnecessárias, o que reduz a latência de escrita e o desgaste prematuro das células de memória flash.
Vale lembrar que a configuração correta do TRIM e do descarte de blocos é um pilar fundamental para quem busca a vida útil máxima do hardware. Como já mostramos anteriormente no SempreUpdate, existem pelo menos 7 estratégias essenciais para otimizar o desempenho de SSDs NVMe no Linux que podem ser aplicadas hoje mesmo enquanto você aguarda a nova versão do kernel.
Detalhes da implementação
A implementação técnica envolve o ajuste do driver NVMe para ler a estrutura Identify Namespace de forma mais detalhada, conforme as especificações NVMe 2.0 e 2.1. O patch introduz suporte para os campos NPDGL (Namespace Preferred Deallocate Granularity Large) e NPDAL (Namespace Preferred Deallocate Alignment Large), que são versões de 32 bits capazes de descrever limites de descarte muito maiores do que os campos de 16 bits anteriores suportavam.
| Parâmetro | Comportamento anterior | Novo comportamento no Kernel Linux 7.0-rc1 |
| Granularidade de Descarte | Baseada no tamanho do bloco lógico | Baseada nos campos NPDG/NPDGL do hardware |
| Alinhamento de Descarte | Frequentemente ignorado ou genérico | Segue o campo NPDA/NPDAL (Preferencial do Hardware) |
| Compatibilidade de Spec | NVMe 1.x / 2.0 básico | Suporte completo aos bits OPTPERF da Spec 2.1 |
A lógica de cálculo foi movida para a função nvme_update_disk_info, garantindo que, sempre que o hardware relatar capacidades de performance otimizada (bits OPTPERF), o Kernel Linux priorize esses valores em vez de usar padrões genéricos.
Curiosidades e bastidores da discussão
A discussão na LKML revelou a complexidade de interpretar as especificações técnicas da NVMe. O renomado mantenedor Christoph Hellwig chegou a descrever parte da lógica de decodificação dos novos campos como “magia negra” (black magic), devido à forma confusa como a especificação organiza os valores baseados em matrizes e índices zero. Houve também um momento de revisão crítica quando Keith Busch apontou uma redundância de código no quinto patch da série, o que levou Mateos a refinar a lógica de verificação de limites para evitar cálculos duplicados no subsistema de blocos.
Quando isso chega no meu PC?
Como o código já foi analisado e está presente na árvore de desenvolvimento do Kernel Linux 7.0-rc1, a expectativa é que a versão estável seja lançada em meados de maio de 2026. Usuários de distribuições Rolling Release, como Arch Linux e openSUSE Tumbleweed, devem receber a novidade poucos dias após o lançamento estável. Para usuários de servidores e desktops de ciclo longo (Ubuntu LTS, Fedora), a tecnologia deve aparecer nas atualizações de stack de kernel previstas para o segundo semestre de 2026.
