Wie stelle ich in Linux/Qemu/KVM die Rx-Warteschlange = N ein?

Wie stelle ich in Linux/Qemu/KVM die Rx-Warteschlange = N ein?

Ich habe 8 Mehrfachwarteschlangen auf meiner CentOS-VM-Box (läuft auf KVM) konfiguriert.

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

Ich kann feststellen, dass mit Ethtool 8 Warteschlangen auf der VM erstellt werden.

[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

Jetzt wollte ich 1 RX-Warteschlange und 2 TX-Warteschlangen für meine DPDK-Anwendung einschränken. Ich versuche, dasselbe mit ethtool einzustellen, aber es wird der folgende Fehler ausgegeben:

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

Ich kann kombinierte Warteschlangen = 2 festlegen, aber keine spezifischen RX/TX-Warteschlangen.

[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

Irgendein Grund/eine Rechtfertigung dafür??

Gibt es eine andere Möglichkeit, RX- und TX-Warteschlangen in Linux einzurichten?

Gibt es eine Möglichkeit, die Größe der RX- und TX-Warteschlangen im libvirt XML-/Qemu-Befehl anzugeben? Ich habe vor dem Posten dieser Frage gegoogelt, konnte aber nichts finden.

Danke schön.

Antwort1

Die DPDK RX-TX-Konfiguration wird mithilfe von gesteuert rte_eth_dev_configure. Daher ist es nur sinnvoll, die Netzwerkkarte zu binden igb_uio, uio_pci_generic or vfio-pciund die Konfigurations-API mit der passenden Nummer der RX- und TX-Warteschlange auszuführen. Die Einstellung von ethtool ist für den DPDK-Port falsch.

verwandte Informationen