VMQ
From Wikipedia, the free encyclopedia
|
|
This article has multiple issues. Please help improve it or discuss these issues on the talk page.
|
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. 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.
[edit] 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.
This section provides high-level information about the NDIS VMQ interface. You should read this section before writing an NDIS driver that supports VMQ.