Linux 7.4 ganha suporte a DMA-BUF no caminho de I/O via io_uring
Infraestrutura foi incorporada na janela de merge do Linux 7.4 e, por ora, funciona apenas com dispositivos de bloco NVMe, segundo o Phoronix.
Publicado em

A janela de merge do Linux 7.4 recebeu a infraestrutura que habilita leitura e escrita com DMA-BUF no caminho de I/O do kernel, usando o io_uring. Por enquanto, só dispositivos de bloco NVMe são suportados.
O que aconteceu
De acordo com o Phoronix, a infraestrutura para suporte a DMA-BUF no caminho de I/O do kernel, por meio do io_uring, foi incorporada à janela de merge do Linux 7.4, em 27 de outubro de 2026.
A matéria afirma que o conceito já era discutido há algum tempo e que havia patches anteriores com objetivo semelhante. Agora, o recurso chegou ao kernel principal e permite operações de leitura e escrita com DMA-BUF via io_uring.
O trabalho foi conduzido por Pavel Begunkov, que, segundo a fonte, passou por onze rodadas de revisão de patches.
Principais novidades
- Suporte a leitura e escrita com DMA-BUF via io_uring entrou no Linux 7.4.
- É um recurso opt-in: os arquivos precisam implementar uma nova operação de arquivo para usá-lo.
- Nesta série, apenas dispositivos de bloco NVMe são suportados.
- A API de usuário se baseia nos "registered buffers" do io_uring, com o dmabuf registrado de forma especial.
- Depois de registrado, o buffer pode ser usado com requisições
IORING_OP_{READ,WRITE}_FIXED. - Segundo o Phoronix, os buffers DMA-BUF para dispositivos de bloco podem ter até 4 GB.
Contexto técnico
Segundo o Phoronix, o framework DMA-BUF do Linux permite que drivers e subsistemas compartilhem buffers de memória de hardware sem cópias feitas pela CPU. Ele é especialmente popular entre drivers de GPU e também tem sido usado em drivers de mídia e rede para compartilhamento zero-copy eficiente.
Pavel Begunkov descreveu que o mapeamento é criado por uma nova operação de arquivo e repassado pela pilha de I/O por um novo tipo de iterador. Há ainda infraestrutura adicional para ligar as partes, contar requisições, gerenciar o tempo de vida dos buffers e implementar invalidação.
Impacto
Para desenvolvedores, o recurso abre caminho para usar buffers compartilhados via DMA-BUF diretamente em operações de I/O do io_uring, hoje com dispositivos de bloco NVMe. A fonte não detalha casos de uso concretos nem a ampliação para outros tipos de dispositivo, de modo que o alcance prático dependerá de evolução futura.

