title: DPDK segment fault in multi vmxnet3 devices
body: <p>We're trying to run DPDK example dpdk-testpmd in a guest machine running Ubuntu 20.04. The host is ESXi version 6.5.</p>
  <p>I'm building dpdk on the guest machine where I'm trying to run it. I've tried DPDK versions 21.11.1.</p>
  <p>There are three virtual network devices, one for ssh, two for DPDK, all of them are use vmxnet3 driver.</p>
  <pre><code>## set kernel parameters
  echo 1024 &gt; /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
  echo 1 &gt; /sys/module/vfio/parameters/enable_unsafe_noiommu_mode
  </code></pre>
  <pre><code>## bind dev
  root@dpdk01:~/dpdk-stable-21.11.1/usertools# ./dpdk-devbind.py --status-dev net
  Network devices using DPDK-compatible driver
  ============================================
  0000:0b:00.0 'VMXNET3 Ethernet Controller 07b0' drv=vfio-pci unused=vmxnet3
  0000:13:00.0 'VMXNET3 Ethernet Controller 07b0' drv=vfio-pci unused=vmxnet3
  Network devices using kernel driver
  ===================================
  0000:03:00.0 'VMXNET3 Ethernet Controller 07b0' if=eth0 drv=vmxnet3 unused=vfio-pci *Active*
  </code></pre>
  <pre><code># testpmd segment fault
  root@dpdk01:~/dpdk-stable-21.11.1/build/app# ./dpdk-testpmd -l 0-3 -n 4
  EAL: Detected CPU lcores: 4
  EAL: Detected NUMA nodes: 1
  EAL: Detected static linkage of DPDK
  EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
  EAL: Selected IOVA mode 'PA'
  EAL: No available 1048576 kB hugepages reported
  EAL: VFIO support initialized
  EAL: Using IOMMU type 8 (No-IOMMU)
  EAL: Ignore mapping IO port bar(3)
  EAL: Probe PCI driver: net_vmxnet3 (15ad:7b0) device: 0000:0b:00.0 (socket 0)
  EAL: Ignore mapping IO port bar(3)
  EAL: Probe PCI driver: net_vmxnet3 (15ad:7b0) device: 0000:13:00.0 (socket 0)
  testpmd: create a new mbuf pool &lt;mb_pool_0&gt;: n=171456, size=2176, socket=0
  testpmd: preferred mempool ops selected: ring_mp_mc
  Configuring Port 0 (socket 0)
  Port 0: 00:0C:29:AE:03:68
  Configuring Port 1 (socket 0)
  Segmentation fault (core dumped)
  </code></pre>
  <pre><code># gdb info
  Thread 1 &quot;dpdk-testpmd&quot; received signal SIGSEGV, Segmentation fault.
  0x0000555555930c0f in vmxnet3_write_mac.isra ()
  (gdb) where
  #0  0x0000555555930c0f in vmxnet3_write_mac.isra ()
  #1  0x0000555555931e5c in vmxnet3_dev_start ()
  #2  0x000055555624c6cc in rte_eth_dev_start ()
  #3  0x00005555560e13d0 in start_port ()
  #4  0x000055555597d98b in main ()
  </code></pre>