Virtualization Latency Management via Guest Process Descheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Virtualization introduces significant delays that are not visible to the guest operating system, causing the guest to be blocked until high-latency operations, such as page swapping, are completed, which can lead to inefficiencies in resource utilization.
Innovation Solution
The virtualization logic injects code to de-schedule the currently running guest process and schedule another process, allowing the hypervisor to perform virtualization operations concurrently while the guest OS continues executing other tasks, using techniques like upcalls, virtual interrupts, or semaphore-based methodologies to manage latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the virtualization logic executes high-latency virtualization operations (such as page swapping) while the guest process is scheduled, then the virtualization operations can be completed, but the guest process is blocked and cannot execute useful work during this time
Solution Approach 1:
The virtualization logic detects when a guest process is scheduled and proactively injects code that causes the process to sleep before the high-latency operation begins. This preliminary action ensures the guest process is already in a sleeping state when the virtualization operation starts, preventing blocking and allowing the operation to complete without losing guest CPU time.
Solution Approach 2:
The patent introduces an intermediary mechanism (injected code and sleep management logic) between the guest process and the virtualization operation. This intermediary allows the virtualization logic to control the guest process state, transitioning it to sleep mode during high-latency operations, thereby decoupling the completion of virtualization tasks from guest process execution.
2Reliability
If the guest operating system waits for high-latency virtualization operations to complete before executing other tasks, then resource isolation is maintained, but resource utilization efficiency decreases
Solution Approach 1:
The system dynamically adjusts the state of the guest process based on the timing and nature of virtualization operations. When a high-latency operation is detected, the guest process is transitioned to a sleeping state; otherwise, it continues executing. This dynamic state management allows the system to maintain isolation while maximizing resource utilization by preventing unnecessary blocking.
3Productivity
If the virtualization logic allows the guest process to continue running during virtualization operations, then resource utilization improves, but the complexity of managing process states and timing increases
Solution Approach 1:
The patent extracts the complexity of process state management from the general virtualization logic by implementing a specific detection and injection mechanism. The virtualization logic only needs to detect scheduled guest processes and inject code to make them sleep, rather than managing all possible process states. This extraction simplifies the overall system while maintaining high resource utilization.
Data Source
Figure 1
Figure 2~3
Figure 4
AI summary
A component manages and minimizes latency introduced by virtualization. The virtualization component determines that a currently scheduled guest process has executed functionality responsive to which the virtualization component is to execute a virtualization based operation, wherein the virtualization based operation is one that is not visible to the guest operating system. The virtualization component causes the guest operating system to de-schedule the currently scheduled guest process and schedule at least one separate guest process. The virtualization component then executes the virtualization based operation concurrently with the execution of the at least one separate guest process. Responsive to completing the execution of the virtualization based operation, the virtualization component causes the guest operating system to re-schedule the de-scheduled guest process.