I have configured 8 multiple queues on my CentOS VM box (running on KVM).
<interface type='direct' trustGuestRxFilters='yes'>
<source dev='ens113f0' mode='passthrough'/>
<model type='virtio'/>
<driver name='vhost' queues='8'/>
</interface>
I can find 8 queues are created on VM using 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
Now, I wanted to restrict 1 RX queue and 2 TX queues for my DPDK application. I am trying to set the same using ethtool but it is throwing below error:
[centos@vm ~]$ sudo ethtool -L eth1 rx 1 tx 2
Cannot set device channel parameters: Invalid argument
I can set combined queues = 2 but not specific RX / TX queues.
[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
Any reason / justification of it??
Is there any other way I can set RX queues and TX queues in linux?
Is there any way I can specify RX & TX queues size in libvirt XML / Qemu command? I googled it before posting this question but couldn't find anything.
Thank you.