Virtual Network Interfaces in Hyper-V

Hyper-V is a hypervisor-based virtualization technology. The hypervisor is the processor-specific virtualization platform that allows multiple isolated operating systems to share a single hardware platform.

Hyper-V supports isolation in terms of a partition. A partition is a logical unit of isolation, supported by the hypervisor, in which operating systems execute. The virtualization stack runs in the management operating system (OS) of the Hyper-V parent partition, and has direct access to the hardware devices. The management OS then creates the Hyper-V child partitions and starts the guest OSs within them.

The following figure shows the synthetic device data paths without VMQ.

Diagram illustrating the synthetic device data paths without VMQ

A NIC that supports VMQ includes hardware that routes packets to receive queues. This requires parsing of the packet header and configuration of the queues on the NIC.

When a miniport driver makes a receive indication, all of the packets are for the same VM queue.

As an option, the NIC can provide VLAN filtering in hardware for a given MAC address.

Routing the packets to queues and indicating all the packets on a queue to a VM allows concurrent receive processing for multiple VMs. Every queue is serviced by a different processor.

Routing to queues in the NIC avoids a copy step to copy data from the NIC receive buffers to the VM address space.

The following figure shows the synthetic device data paths with VMQ.

Diagram illustrating the synthetic device data paths with VMQ

In the figure, the miniport driver for the NIC indicates received data up to the virtual service provider (VSP). However, the NIC transferred the data that matches a receive filter test for a queue to that queue, avoiding software processing in the VSP. Data that does not pass any filter tests goes to the default queue where the VSP must process the data. In addition to avoiding the routing and copying in the VSP, the receive interrupts for VM queues are assigned to different processors.

 

 

Send comments about this topic to Microsoft

Build date: 2/9/2011