IP Library Granted Patent US 9,406,099
Granted Patent B2
US 9,406,099 · App. 14/632,618 · Granted Aug 2, 2016

Methods and systems for maintaining state in a virtual machine when disconnected from graphics hardware

Inventors: James McKenzie (Cambridge, GB); Jean Guyader (Cambridge, GB)
Assignee: Citrix Systems, Inc.
G06T1/20G06F9/455G06F9/45558
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,406,099
App. No.
14/632,618
Granted
Aug 2, 2016
Kind
B2
Abstract

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.

Claims (29)

1. In a computing device executing a hypervisor hosting a plurality of virtual machines, a method for maintaining state in one or more of the plurality of virtual machines when disconnected from graphics hardware, comprising:

storing, by a control virtual machine hosted by the hypervisor executing on the computing device, state information of a graphics processing unit (GPU) of the computing device, the GPU configured to render an image from a first virtual machine of the plurality of virtual machines;

determining, by the control virtual machine, that a second virtual machine of the plurality of virtual machines requests access to the GPU;

redirecting, by the control virtual machine, access to the GPU from the first virtual machine to the second virtual machine; and

rendering, by a GPU emulation program executed on the control virtual machine, the image for the first virtual machine using at least a portion of the state information to provide continuity in graphics processing for the first virtual machine.

2. The method of claim 1 , wherein (a) comprises storing the state information of the GPU to a buffer of the computing device.

3. The method of claim 1 , wherein (a) comprises copying at least a portion of a graphics stack of the GPU including a state of a graphics driver.

4. The method of claim 1 , further comprising determining, by the control virtual machine, that the GPU emulation program is available within the first virtual machine for execution.

5. The method of claim 1 , further comprising determining, by the control virtual machine, that the GPU emulation program is installed in the computing device.

6. The method of claim 1 , wherein the control virtual machine provides the first virtual machine with uninterrupted access to a graphics processing entity during the removal and redirection.

7. The method of claim 1 , wherein (c) comprises redirecting the first virtual machine to the GPU emulation program.

8. The method of claim 1 , wherein (c) comprises redirecting an application of the first virtual machine providing the image to the GPU emulation program.

9. The method of claim 1 , wherein (c) comprises removing, from the first virtual machine, by the control virtual machine, access to the GPU.

10. The method of claim 1 , further comprising restoring the state information to the GPU and redirecting the first virtual machine to the GPU.

11. In a computing device executing a hypervisor hosting a plurality of virtual machines, a system for maintaining state in one or more virtual machines of the plurality of virtual machines when disconnected from graphics hardware, comprising:

the hypervisor executing on the computing device and hosting a control virtual machine and a first virtual machine, wherein the control virtual machine is configured to:

store state information of a graphics processing unit (GPU) of the computing device, the GPU configured to render an image from a first virtual machine;

determine that a second virtual machine of the plurality of virtual machines requests access to the GPU;

redirect access to the GPU from the first virtual machine to the second virtual machine; and

wherein a GPU emulation program executing on the control virtual machine renders the image for the first virtual machine using at least a portion of the state information to provide continuity in graphics processing for the first virtual machine.

12. The system of claim 11 , wherein the control virtual machine stores the state information of the GPU to a buffer of the computing device.

13. The system of claim 11 , wherein the control virtual machine copies at least a portion of a graphics stack of the GPU including a state of a graphics driver.

14. The system of claim 11 , wherein the control virtual machine determines that the GPU emulation program is available within the first virtual machine for execution.

15. The system of claim 11 , wherein the control virtual machine determines that the GPU emulation program is installed in the computing device.

16. The system of claim 11 , wherein the control virtual machine initiates execution of the GPU emulation program prior to removing access to the GPU.

17. The system of claim 11 , wherein the control virtual machine provides the first virtual machine with uninterrupted access to a graphics processing entity during the removal and redirection.

18. The system of claim 11 , wherein the control virtual machine redirects an application of the first virtual machine providing the image to the GPU emulation program.

19. The system of claim 11 , wherein the control virtual machine removes, from the first virtual machine, access to the GPU, and redirects the first virtual machine to the GPU emulation program.

20. The system of claim 11 , wherein the control virtual machine restores the state information to the GPU and redirects the first virtual machine to the GPU.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2015
From: MCKENZIE, JAMES; GUYADER, JEAN
To: CITRIX SYSTEMS, INC
Reel/Frame 035065/0469 →
Continuity (3)
Continuation 13687623 · Nov 28, 2012
Provisional Application 61564692 · Nov 29, 2011
Related Publication 20150178883A1 · Jun 25, 2015