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. 따라서 igb_uio, uio_pci_generic or vfio-pci적절한 수의 RX 및 TX 대기열을 사용하여 NIC를 바인딩하고 구성 API를 실행하는 것이 합리적입니다 . DPDK 포트에 대한 ethtool의 설정이 올바르지 않습니다.

관련 정보