FERRAMENTAS LINUX: O envio do IO_uring Zerocopy está pronto para a rede do Kernel Linux 5.20

quinta-feira, 21 de julho de 2022

O envio do IO_uring Zerocopy está pronto para a rede do Kernel Linux 5.20

 


Confira !!

O longo trabalho de desenvolvimento em torno de IO_uring envio de cópia zero para o subsistema de rede do kernel Linux agora está pronto para a linha principal.

Por meses, Pavel Begunkov tem trabalhado no suporte de envio de cópia zero IO_uring e agora está tudo pronto e pronto para ser mesclado no Linux 5.20. Os benchmarks parecem ótimos e o código agora está maduro o suficiente para a linha principal.


A partir de ontem, o suporte "io_uring-zerocopy-send" foi enfileirado no net-next como o código do subsistema de rede para a próxima janela de mesclagem do kernel.

O conjunto de patches implementa o envio zerocopy do io_uring. Funciona com buffers registrados e normais, a mistura é permitida, mas não recomendada. Além das conclusões de solicitação usuais, assim como com MSG_ZEROCOPY, o io_uring notifica separadamente o espaço do usuário quando os buffers são liberados e podem ser reutilizados (veja o design da API abaixo), que é entregue na fila de conclusão do io_uring. Essas notificações "sem buffer" não são necessariamente por solicitação, mas o espaço do usuário tem controle sobre ela e deve anexar explicitamente várias solicitações a uma única notificação. A série também adiciona algumas otimizações internas quando usada com buffers registrados, como a remoção de referência de página.

Do ponto de vista da rede do kernel, há duas mudanças principais. O primeiro é passar ubuf_info para a camada de rede de io_uring (dentro de um msghdr de estrutura do kernel). Isso permite otimizações extras, por exemplo, cache do ubuf_info no lado do io_uring, mas também ajuda a evitar problemas de referência cruzada e sincronização. A segunda parte é uma otimização opcional que remove a referência de página para solicitações com buffers registrados.

Enfileirados via for-5.20/io_uring-zerocopy-send estão as alterações do lado IO_uring enfileiradas pelo mantenedor Jens Axboe. O Linux 5.20 está se tornando um grande kernel.










Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário