Я настроил 8 множественных очередей на моем ящике CentOS VM (работающем на KVM).
<interface type='direct' trustGuestRxFilters='yes'>
<source dev='ens113f0' mode='passthrough'/>
<model type='virtio'/>
<driver name='vhost' queues='8'/>
</interface>
Я могу найти 8 очередей, созданных на виртуальной машине с помощью 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
Теперь я хотел ограничить одну очередь приема и две очереди передачи для моего приложения DPDK. Я пытаюсь установить то же самое с помощью ethtool, но выдает ошибку ниже:
[centos@vm ~]$ sudo ethtool -L eth1 rx 1 tx 2
Cannot set device channel parameters: Invalid argument
Я могу установить объединенные очереди = 2, но не конкретные очереди RX / TX.
[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
Какая-то причина / оправдание этому ??
Есть ли другой способ установить очереди RX и очереди TX в Linux?
Есть ли способ указать размер очередей RX и TX в команде libvirt XML / Qemu? Я погуглил, прежде чем опубликовать этот вопрос, но ничего не нашел.
Спасибо.