Virtual Machine Context Skew Detection and Dynamic Coscheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtual machine environments, strict coscheduling can lead to resource underutilization and performance reduction due to idle physical processors, as some virtual machines cannot run even when there are available resources because all their virtual processors must be coscheduled simultaneously.

Innovation Solution

The solution involves tracking and managing coscheduled contexts by recording transition times between scheduled and descheduled states, detecting skew, and implementing corrective actions such as costop, costart, and coswap policies to reduce skew and ensure efficient resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If strict coscheduling is implemented to ensure synchronous execution of virtual processors, then synchronization and correctness are improved, but physical processor utilization deteriorates causing idle processors and reduced overall performance

Engineering Contradiction:
ImprovesynchronizationVSAvoidphysical processor utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic coscheduling that adapts between strict and relaxed modes based on system conditions. The scheduler monitors synchronization requirements and resource availability, dynamically adjusting the scheduling policy to maintain correctness when needed while maximizing utilization when possible, thus resolving the contradiction between reliability and productivity

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the scheduling parameter from fixed strict coscheduling to variable relaxation levels. By adjusting the degree of coscheduling relaxation based on workload characteristics and resource availability, the system can achieve both synchronization where required and improved processor utilization where possible

Inventive Principle:
Principle #35Parameter changes

2Reliability

If strict coscheduling is enforced for all virtual processors, then execution correctness is improved, but system performance deteriorates due to fragmentation and idle resources

Engineering Contradiction:
Improveexecution correctnessVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies partial coscheduling relaxation where only the minimum necessary synchronization is maintained for correctness, rather than enforcing complete strict coscheduling. This allows some flexibility in scheduling while still ensuring execution correctness, thereby improving overall system performance without sacrificing reliability

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If all virtual processors of an SMP VM must be coscheduled simultaneously, then synchronization is improved, but resource utilization deteriorates when not all physical processors are available

Engineering Contradiction:
ImprovesynchronizationVSAvoidresource availability
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent segments the coscheduling requirement by allowing individual virtual processors to be scheduled independently when physical resources are constrained, rather than requiring all virtual processors to be scheduled simultaneously. This segmentation enables better resource utilization while maintaining synchronization where possible

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8176493B1Detecting and responding to skew between coscheduled contexts
Publication Date: 2012.05.08 VMWARE INC
  • US8176493B1 patent drawing
  • US8176493B1 patent drawing
  • US8176493B1 patent drawing

AI summary

Management of contexts that execute on a computer system is described. More specifically, context scheduling in a virtual machine environment is described. A set of coscheduled contexts is monitored. If a skew metric associated with a first context of the coscheduled contexts fails to satisfy a condition, then a subset of the coscheduled contexts is descheduled although the first context remains scheduled.