From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

The Virtual Machine Queue (VMQ) is a hardware virtualization technology for the efficient transfer of network traffic (such as TCP/IP, iSCSI or FCoE) to a virtualized host OS. VMQ technology was patented in 2010 by Daniel Baumberger of Intel Corp. A VMQ capable NIC can use DMA to transfer all incoming frames that should be routed to a receive queue to the receive buffers that are allocated for that queue. The miniport driver can indicate all of the frames that are in a receive queue in one receive indication call.

The VMQ interface supports:

  • Classification of received packets in NIC hardware by using the destination MAC address to route the packets to different receive queues.
  • NIC ability to use DMA to transfer packets directly to a virtual machine's shared memory. For more information about shared memory, see NDIS 6.20 Memory Management Interface.
  • Scaling to multiple processors by processing packets for different virtual machines on different processors.

Virtual Machine Queue Architecture[edit]

The NDIS virtual machine queue (VMQ) architecture provides advantages for virtualization such as:

  • Virtualization impacts performance and VMQ helps overcome those effects.
  • VMQ supports live migration.
  • VMQ co-exists with NDIS task offloads and other optimizations.


Some networks recommend disabling VMQ. They state this option is prone to misconfiguration and can cause reduced network performance when enabled.[1]


  1. ^ "Disable Virtual Machine Queues". Palo Alto Networks, Inc. Retrieved 24 December 2017.