¿Cómo configurar la cola Rx = N en Linux/en Qemu/KVM?

¿Cómo configurar la cola Rx = N en Linux/en Qemu/KVM?

He configurado 8 colas múltiples en mi máquina CentOS VM (que se ejecuta en KVM).

<interface type='direct' trustGuestRxFilters='yes'>
  <source dev='ens113f0' mode='passthrough'/>
  <model type='virtio'/>
  <driver name='vhost' queues='8'/>
</interface>

Puedo encontrar que se crean 8 colas en VM usando ethtool.

[centos@vm ~]$ ethtool -l eth1
Channel parameters for eth1:
Pre-set maximums:
RX:     0
TX:     0
Other:      0
Combined:   8
Current hardware settings:
RX:     0
TX:     0
Other:      0
Combined:   4

Ahora quería restringir 1 cola RX y 2 colas TX para mi aplicación DPDK. Estoy intentando configurar lo mismo usando ethtool pero arroja el siguiente error:

[centos@vm ~]$ sudo ethtool -L eth1 rx 1 tx 2
Cannot set device channel parameters: Invalid argument

Puedo configurar colas combinadas = 2 pero no colas RX/TX específicas.

[centos@vm ~]$ sudo ethtool -L eth1 combined 2
[centos@vm ~]$ ethtool -l eth1
Channel parameters for eth1:
Pre-set maximums:
RX:     0
TX:     0
Other:      0
Combined:   8
Current hardware settings:
RX:     0
TX:     0
Other:      0
Combined:   2

¿Alguna razón/justificación para ello?

¿Hay alguna otra forma de configurar las colas RX y TX en Linux?

¿Hay alguna forma de especificar el tamaño de las colas RX y TX en el comando libvirt XML/Qemu? Lo busqué en Google antes de publicar esta pregunta pero no pude encontrar nada.

Gracias.

Respuesta1

La configuración de DPDK RX-TX se controla mediante rte_eth_dev_configure. Por lo tanto, solo tiene sentido vincular la NIC igb_uio, uio_pci_generic or vfio-pciy ejecutar la API de configuración con un número adecuado de colas RX y TX. La configuración de ethtool es incorrecta para el puerto DPDK.

información relacionada