1

I'm working on an application based on RSS multiqueue(receive side scaling), and testing it on vmware workstation, but found that vmxnet3 nic have problem with RSS.

My linux virtual machine has 4 vCPUs, and vmxnet3 have 4 rx queues, but packet always arrived at queue0, queue1-queue3 are always idle. I have tried different version of linux/workstation, but got the same result. What I have tried are: wind river linux 4.3+workstation 10, centos6+workstation10, and ceotos7+workstation11, and tried multiple verion of vmxnet3 driver: vmtools-8.8.4, vmtools-9.6.0, vmtools-9.9.0, and centos7 vmxnet3 driver.

Does the multiqueue(receive side scaling) works on vmware workstation?

following are some message from my modified vmxnet3 driver (print rss config when probing device, and print rx desc when receiving packets):

vmxnet3 0000:13:00.0 eth2: intr type 3, mode 0, 5 vectors allocated

---------- eth2 rss config: hashType=0xf rx_queues=4

vmxnet3 0000:13:00.0 eth2: NIC Link is Up 10000 Mbps

vmxnet3 0000:03:00.0 eth0: intr type 3, mode 0, 5 vectors allocated

---------- eth0 rss config: hashType=0xf rx_queues=4

vmxnet3 0000:03:00.0 eth0: NIC Link is Up 10000 Mbps

vmxnet3 0000:0b:00.0 eth1: intr type 3, mode 0, 5 vectors allocated

---------- eth1 rss config: hashType=0xf rx_queues=4

vmxnet3 0000:0b:00.0 eth1: NIC Link is Up 10000 Mbps

eth0-rxtx-0: rssType=0 rqID=0 rssHash=0x0(0) v4=1 v6=0 tcp=0 udp=1 tuc=1 cnc=0 ipc=1

eth0-rxtx-0: rssType=0 rqID=0 rssHash=0x0(0) v4=1 v6=0 tcp=0 udp=1 tuc=1 cnc=0 ipc=1

...... same messages, packets always arrived at eth0-rxtx-0, even if I changed IP address.

Thanks!

1

There's a knowledge base article on this exact topic -- http://kb.vmware.com/kb/2020567 (and I'm guessing it was written by VMware in response to your request). Essentials are:

Receive side scaling (RSS) and multiqueue support are included in the VMXNET3 Linux device driver. The VMXNET3 device always supported multiple queues, but the Linux driver used one Rx and one Tx queue previously.

  • For the VMXNET3 driver shipped with VMware Tools, multiqueue support was introduced in vSphere 5.0.
  • For the VMXNET3 driver included with the Linux operating system, multiqueue support was introduced after and including Linux kernel version 2.6.37.

Recent versions of VMware Tools have multiqueuing enabled by default. However, in earlier versions, you must manually enable multiqueuing. This can be done by using modprobe to set the number of transmit and receive queues for each adapter.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.