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
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.