Selecting between pass-through and emulation in a virtual machine environment
AssigneeVMware, Inc.
InventorsMallik Mahalingam, Boon Seong Ang, Pankaj Thakkar
Life of this patent
Estimating the term…
Abstract
According to one or more embodiments a logical virtual device may provide the desired functionality using either a virtual device or a physical device connected to a virtual machine. When the physical device is available, a guest operating system executing on a virtual machine (VM) can be instructed to utilize the physical device. When the VM is migrated between hosts of different underlying hardware, or when the physical device becomes unavailable, e.g., through dynamic reconfiguration or reallocation of physical resources, the guest operating system can be instructed to utilize the virtual device instead.
Claims20
A computer readable storage medium embodying computer instructions for a virtualized computer system, the computer instructions including instructions for:
- at least one virtual machine (VM), each VM including guest system software including a teaming driver, a virtual I/O device driver, and a physical I/O device driver;
- and
- virtualization software that interfaces with physical hardware of a host and with the VM, causing the VM to execute on the host;
- wherein:
- the VM, when using the virtual I/O driver, accesses a virtual I/O device that is emulated by the virtualization software to provide access to a physical I/O device on the host, the virtualization software executing on the host and outside the VM;
- the VM, when using the physical I/O device driver, accesses the physical I/O device directly;
- and
- the virtualization software instructs the teaming driver to cause the VM to utilize the physical I/O device driver or the virtual I/O device driver to access the physical I/O device.
In a virtualized computer system comprising at least one virtual machine (VM) that includes a guest operating system and a teaming driver, a method of selecting software in the VM for I/O operations that comprises:
- loading a virtual I/O device driver for a virtual I/O device into the guest operating system, the virtual I/O device providing access to a physical I/O device by virtualization software executing in a host and outside the VM;
- loading a physical I/O device driver for the physical I/O device into the guest operating system;
- and
- configuring the teaming driver to group instantiations of a corresponding physical I/O device driver and the virtual I/O device driver;
- wherein the virtualization software instructs the teaming driver to cause the guest operating system to interact either with the physical I/O device driver or the virtual I/O device driver to access the physical I/O device.
A computer readable storage medium embodying computer instructions for virtualization software executing in a host, the computer instructions for the virtualization software including instructions for:
- virtual system hardware for a virtual machine (VM), the virtual system hardware including an emulated virtual I/O device that is emulated in software and a virtual I/O pass-through device that provides direct access from the VM to a physical I/O device without software device emulation;
- and
- a hypervisor that places the emulated virtual I/O device in communication with the physical I/O device, the hypervisor dynamically allocating I/O device resources to the VM by exposing the physical I/O device to the VM when the physical I/O device is available for exclusive use to the VM, thereby allowing the VM to select, using a teaming driver, between directly accessing the physical I/O device using the virtual I/O pass-through device when the physical I/O device is available for exclusive use by the VM and the emulated virtual I/O device when the physical I/O device is not available for exclusive use by the VM.
Dependencies are inferred from the claim text.