Virtual Machine GPU State Preservation During Hardware Reassignment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtualization environments, graphics hardware like GPUs cannot be easily allocated to multiple virtual machines due to hardware acceleration and conflict issues, leading to impaired user experience when re-assignment occurs, as only one virtual machine can access the GPU at a time.

Innovation Solution

A control virtual machine manages graphics hardware by pausing the first virtual machine, saving its state, and redirecting it to a GPU emulation program, allowing seamless graphics processing and memory access, while another virtual machine uses the GPU, ensuring uninterrupted user experience.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If graphics hardware is allocated to only one virtual machine at a time, then hardware conflicts are avoided and hardware acceleration is supported, but user experience deteriorates when re-assignment occurs

Engineering Contradiction:
Improvehardware conflict avoidanceVSAvoiduser experience
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

A control virtual machine is introduced as an intermediary between the graphics hardware and other virtual machines. This control VM manages GPU allocation, saves and restores graphics state, and coordinates re-assignment operations, thereby avoiding hardware conflicts while maintaining seamless user experience through state preservation during transitions.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If graphics hardware is re-assigned between virtual machines, then resource utilization improves, but graphics processing state is lost

Engineering Contradiction:
Improveresource utilizationVSAvoidgraphics processing state
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

Before re-assigning graphics hardware to a different virtual machine, the control virtual machine performs preliminary actions by saving the complete graphics processing state (including GPU registers, memory buffers, and driver state) to persistent storage. This preliminary state preservation enables seamless restoration when the original VM is reactivated, preventing information loss while allowing resource re-utilization.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If multiple virtual machines access graphics hardware simultaneously, then user experience improves with continuous access, but hardware conflicts occur

Engineering Contradiction:
Improvecontinuous graphics accessVSAvoidhardware conflict
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

Instead of allowing multiple VMs to access the physical graphics hardware simultaneously (which causes conflicts), the system creates a software copy of the graphics processing environment through emulation. The control VM maintains an emulated graphics stack that replicates GPU functionality, allowing multiple VMs to access graphics resources concurrently without hardware conflicts, while the physical GPU is time-multiplexed among them.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9514507B2Methods and systems for maintaining state in a virtual machine when disconnected from graphics hardware
Publication Date: 2016.12.06 CITRIX SYSTEMS INC
  • US9514507B2 patent drawing
  • US9514507B2 patent drawing
  • US9514507B2 patent drawing

AI summary

The present disclosure is directed towards methods and systems for maintaining state in a virtual machine when disconnected from graphics hardware. The virtual machine is one of a plurality of virtual machines hosted by a hypervisor executing on a computing device. A control virtual machine may be hosted by a hypervisor executing on a computing device. The control virtual machine may store state information of a graphics processing unit (GPU) of the computing device. The GPU may render an image from a first virtual machine. The control virtual machine may remove, from the first virtual machine, access to the GPU. The control virtual machine may redirect the first virtual machine to a GPU emulation program. The GPU emulation program may render the image from the first virtual machine using at least a portion of the stored state information.