Na semana passada, todas as alterações do VirtIO e do Virtual Data Path Acceleration (VDPAU) foram mescladas para o kernel do Linux 6.4. O interessante dessa solicitação pull é fornecer um grande aumento de desempenho para o VDUSE.
Para quem não se lembra, o VDUSE foi mesclado ao kernel em 2021 com o Linux 6.15. O VDUSE trata da implementação de dispositivos VDPA no espaço do usuário. A estrutura vDPA é o código VirtIO Data Path Acceleration dentro do kernel para dispositivos em conformidade com a especificação VirtIO, mas contando com um caminho de controle específico do fornecedor. A estrutura vDPA é cada vez mais usada para abstrair hardware e ocultar alguns elementos das complexidades de hardware para software, ao mesmo tempo em que possui uma API unificada de espaço de usuário como um dispositivo VirtIO. O VDUSE permite a implementação de dispositivos emulados por software vDPA no espaço do usuário.
Os engenheiros da Bytedance têm trabalhado nos últimos meses para melhorar o desempenho do VDUSE. Com um conjunto de patches para mitigar a contenção de bloqueio virtqueue no driver virtio-blk, a Bytedance está vendo uma melhoria de desempenho de cerca de 50%: de 600k para 900k IOPS em seus testes. Os patches da Bytedance também adicionam uma interface sysfs para permitir a alteração da afinidade de retornos de chamada de IRQ para cada virtqueue VDUSE para ajudar no ajuste de desempenho e também uma interface sysfs para definir o tamanho do buffer de salto para virtio-vdpa para ajuste com cargas de trabalho de alto rendimento. O aumento de 50% sozinho é bom, enquanto esses novos botões para maior ajuste de desempenho são a cereja do bolo.
As alterações VirtIO/VDPA para Linux 6.4 também trazem uma redução na taxa de interrupção para VirtIO, melhorias de escalabilidade para vhost-scsi e outras melhorias. Mais detalhes sobre essas alterações em este pull.
Aqueles que desejam aprender mais sobre O VDUSE em geral pode fazer isso por meio da documentação do kernel.org.