O longo trabalho de desenvolvimento em torno 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.

Até ontem, o suporte”io_uring-zerocopy-send”era enfileirado em net-next como o código do subsistema de rede para a próxima janela de mesclagem do kernel.

O patchset implementa io_uring zerocopy send. 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. ubuf_info cache no lado 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.

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

Jakub fundiu a série prep net para o suporte io_uring tx zerocopy:https://t.co/l6Axk5WUr9

e eu encenei os bits restantes em cima disso:https://t.co/35veXfsMVM

5.20 está ficando bom!

— Jens Axboe (@axboe) 20 de julho , 2022

Categories: IT Info