Linux / Qemu / KVM で Rx キュー = N を設定するにはどうすればいいですか?

Linux / Qemu / KVM で Rx キュー = N を設定するにはどうすればいいですか?

CentOS VM ボックス (KVM 上で実行) に 8 つのマルチキューを設定しました。

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

ethtool を使用して VM 上に 8 つのキューが作成されていることがわかります。

[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 アプリケーションに対して 1 つの RX キューと 2 つの TX キューを制限したいと考えていました。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

何か理由や正当性はありますか?

Linux で RX キューと TX キューを設定する他の方法はありますか?

libvirt XML / Qemu コマンドで RX および TX キューのサイズを指定する方法はありますか? この質問を投稿する前に Google で検索しましたが、何も見つかりませんでした。

ありがとう。

答え1

DPDK RX-TX 構成は を使用して制御されますrte_eth_dev_configure。したがって、NIC を にバインドしigb_uio, uio_pci_generic or vfio-pci、適切な数の RX キューと TX キューを使用して configure API を実行することだけが意味があります。ethtool からの設定は DPDK ポートに対して正しくありません。

関連情報