Hypervisor Control of Directly Assigned Hardware Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current machine virtualization systems cannot control the state of virtual machines (VMs) with directly assigned hardware devices, as these devices are outside the purview of the hypervisor, making operations like pausing, saving, and migrating VMs challenging, especially in cloud environments.
Innovation Solution
The hypervisor directly assigns physical hardware devices to VMs, allowing communication with the guest operating system to perform state operations such as pausing, saving, and restoring by using mechanisms like host drivers, virtual bus services, and device managers to manage directly assigned hardware devices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If hardware devices are directly assigned to VMs to improve performance, then VM access speed and device utilization are improved, but the hypervisor loses control over the hardware device state
Solution Approach 1:
The patent introduces a device driver as an intermediary component that resides in the VM and communicates with the directly assigned hardware device. This driver acts as a mediator, allowing the hypervisor to control the device state indirectly through VM-to-hypervisor communication protocols, thus maintaining both direct hardware access performance and hypervisor control capability
Solution Approach 2:
The control functionality is segmented between the hypervisor and the VM's device driver. The hypervisor maintains high-level control through state manipulation requests, while the device driver handles low-level hardware interactions. This segmentation allows performance optimization through direct assignment while preserving management control through the hypervisor's ability to send control requests
2Productivity
If hardware devices are directly assigned to VMs, then device performance is improved, but VM state manipulation operations become impossible
Solution Approach 1:
The device driver serves as an intermediary that receives state manipulation requests from the hypervisor (such as pause, save, restore operations) and translates them into appropriate hardware device commands. This allows the hypervisor to manipulate VM state even when hardware is directly assigned, as the driver mediates between the hypervisor's control requests and the hardware device
Solution Approach 2:
The system performs preliminary actions by having the device driver pre-configured with the capability to respond to hypervisor control requests. Before state manipulation is needed, the driver is already in place and registered with the hypervisor, enabling seamless state operations without requiring hardware reassignment or VM reconfiguration
3Ease of manufacture
If cloud providers need to perform host updates and reboots, then system maintenance is improved, but tenant VM operations are interrupted
Solution Approach 1:
Before the host system is updated or rebooted, the hypervisor sends state manipulation requests to the VM's device driver to pause or save the VM state. This preliminary action ensures that the VM is in a controlled state before maintenance operations begin, allowing the host to be updated without interfering with tenant VM operations
Solution Approach 2:
The device driver provides feedback to the hypervisor about the VM's current state and the status of state manipulation operations. This feedback mechanism allows the hypervisor to coordinate host maintenance activities with VM state, ensuring that VM operations are properly suspended or saved before host updates, thereby minimizing tenant operation interruptions
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Embodiments relate to enabling state manipulation of virtual machines (VMs) that have directly assigned hardware devices. A hypervisor manages execution of a VM with a guest operating system. The hypervisor directly assigns a physical (non-virtual) hardware device to the VM, such that the VM has exclusive use of the hardware device and the guest operating system uses the hardware without needing virtualization abstraction/mapping by the hypervisor. When the VM needs to be pauses, suspended, restored, or similarly manipulated, the hypervisor communicates with the VM to cause the guest operating system to perform whatever operations might be necessary by the hardware device. The hypervisor and VM/guest may communicate with a variety of mechanisms, such as a host driver communicating with a guest driver, a virtual bus service backed by a hardware bus of the computer, a virtual bus channel, or the like.