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.
Jakub merged the prep net series for the io_uring tx zerocopy support:https://t.co/l6Axk5WUr9
— Jens Axboe (@axboe) July 20, 2022
and I staged the remaining bits on top of that:https://t.co/35veXfsMVM
5.20 is shaping up nicely!
Até a próxima !!
Nenhum comentário:
Postar um comentário