IP Library › Granted Patent US 10,304,153
Granted Patent B2
US 10,304,153 · App. 15/409,545 · Granted May 28, 2019

Virtual machine graphic resource usage

Inventors: Lakshmana Prakash (Bengaluru, IN); Sendhil Kumar (Bengaluru, IN)
Assignee: VMware, Inc.
G06T1/20G06F9/45533
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 10,304,153
App. No.
15/409,545
Granted
May 28, 2019
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for calculating graphics resources for a virtual machine. One of the methods includes determining resources available on a graphics card device included in a computer executing a plurality of virtual machines, each virtual machine configured to execute a virtual desktop; determining, based on data received from a hypervisor that manages execution of at least one of the plurality of virtual machines, a graphics profile for a virtual machine included in the plurality of virtual machines executing on the computer; determining a portion of the available resources on the graphics card device allocated to the virtual machine using the graphics profile; and computing an amount of resources on the graphics card device consumed by a virtual desktop of the virtual machine based on the portion of the available resources on the graphics card device allocated to the virtual machine.

Claims (71)

1. A system comprising:

a data processing apparatus; and

a non-transitory computer readable medium in data communication with the data processing apparatus and storing instructions executable by the data processing apparatus and that upon such execution cause the data processing apparatus to perform operations comprising:

determining resources available on a graphics card device included in a computer executing a plurality of virtual machines, each virtual machine configured to execute a virtual desktop;

determining, based on data received from a hypervisor that manages execution of at least one of the plurality of virtual machines, a graphics profile for a virtual machine included in the plurality of virtual machines executing on the computer, the graphics profile indicating an amount of graphics card resources for execution of the virtual machine;

allocating a portion of the available resources on the graphics card device to the virtual machine using the graphics profile;

computing an amount of resources on the graphics card device actually consumed by a virtual desktop of the virtual machine during a first execution of the virtual machine;

determining, based on the portion of the available resources on the graphics card device allocated to the virtual machine and the amount of resources actually consumed, a second graphics profile that indicates a different portion of resources to allocate to the virtual machine; and

in response to a request for a second execution of the virtual machine, executing the virtual machine using resources allocated according to the second graphics profile.

2. The system of claim 1 , wherein the second graphics profile indicates a different portion of resources on a second graphics card device; and

the operations comprising sending, to the hypervisor, second data for the second graphics profile to cause an execution of the virtual machine using the different portion of resources on the second graphics card device.

3. The system of claim 2 , wherein:

the graphics card device is the same model as the second graphics card device.

4. The system of claim 2 , wherein:

sending, to the hypervisor, the second data for the second graphics profile to cause an execution of the virtual machine using the different portion of resources on the second graphics card device comprises causing the second execution of the virtual machine on a second computer that includes the second graphics card device using resources allocated to the virtual machine based on the second graphics profile, the second execution of the virtual machine being a different execution than and occurring after the first execution of the virtual machine.

5. The system of claim 4 , wherein:

the second graphics profile is specific to a first type of graphics card device or a first graphics card device architecture; and

causing the second execution of the virtual machine on the second computer that includes the second graphics card device using resources allocated to the virtual machine based on the second graphics profile comprises:

determining, using the second graphics profile, that a particular computer that includes the first type of graphics card device or a particular graphics card device with the first graphics card device architecture is not available for the second execution of the virtual machine;

determining that another graphics profile for a second type of graphics card device, different than the first type of graphics card device, or for a second graphics card device architecture, different than the first graphics card device architecture, identifies at least the resources identified by the second graphics profile in response to determining that a particular computer that includes the first type of graphics card device or a particular graphics card device with the first graphics card device architecture is not available for the second execution of the virtual machine;

determining that the second graphics card device is specific to the other graphics profile;

determining that the second computer includes the second graphics card device; and

selecting the second computer for the second execution of the virtual machine in response to determining that the second computer includes the second graphics card device.

6. The system of claim 1 , the operations comprising:

causing presentation of data identifying the portion of the available resources on the graphics card device allocated to the virtual machine and the amount of resources on the graphics card device consumed by the virtual desktop of the virtual machine.

7. The system of claim 1 , wherein determining the portion of the available resources on the graphics card device allocated to the virtual machine using the graphics profile comprises:

determining a maximum quantity of virtual machines that can be assigned to the graphics card device using the graphics profile; and

determining the portion of the available resources on the graphics card device allocated to the virtual machine using the maximum quantity of virtual machines that can be assigned to the graphics card device.

8. The system of claim 1 , the operations comprising:

determining a profile identifier for the graphics profile; and

creating a mapping between the profile identifier and an identifier for the virtual machine upon execution of the virtual machine on the computer, wherein determining the graphics profile for the virtual machine included in the plurality of virtual machines executing on the computer comprises determining, using the mapping between the profile identifier and the identifier for the virtual machine, the profile identifier.

9. The system of claim 1 , the operations comprising receiving the data from the hypervisor that identifies the graphics profile for the virtual machine.

10. A computer-implemented method comprising:

determining resources available on a graphics card device included in a computer executing a plurality of virtual machines, each virtual machine configured to execute a virtual desktop;

determining, based on data received from a hypervisor that manages execution of at least one of the plurality of virtual machines, a graphics profile for a virtual machine included in the plurality of virtual machines executing on the computer, the graphics profile indicating an amount of graphics card resources for execution of the virtual machine;

allocating a portion of the available resources on the graphics card device to the virtual machine using the graphics profile;

computing an amount of resources on the graphics card device actually consumed by a virtual desktop of the virtual machine during a first execution of the virtual machine;

determining, based on the portion of the available resources on the graphics card device allocated to the virtual machine and the amount of resources actually consumed, a second graphics profile that indicates a different portion of resources to allocate to the virtual machine; and

in response to a request for a second execution of the virtual machine, executing the virtual machine using resources allocated according to the second graphics profile.

11. The method of claim 10 , wherein the second graphics profile indicates a different portion of resources on a second graphics card device; and

the method comprising sending, to the hypervisor, second data for the second graphics profile to cause an execution of the virtual machine using the different portion of resources on the second graphics card device.

12. The method of claim 11 , wherein:

the graphics card device is the same model as the second graphics card device.

13. The method of claim 11 , wherein:

sending, to the hypervisor, the second data for the second graphics profile to cause an execution of the virtual machine using the different portion of resources on the second graphics card device comprises causing the second execution of the virtual machine on a second computer that includes the second graphics card device using resources allocated to the virtual machine based on the second graphics profile, the second execution of the virtual machine being a different execution than and occurring after the first execution of the virtual machine.

14. The method of claim 13 , wherein:

the second graphics profile is specific to a first type of graphics card device or a first graphics card device architecture; and

causing the second execution of the virtual machine on the second computer that includes the second graphics card device using resources allocated to the virtual machine based on the second graphics profile comprises:

determining, using the second graphics profile, that a particular computer that includes the first type of graphics card device or a particular graphics card device with the first graphics card device architecture is not available for the second execution of the virtual machine;

determining that another graphics profile for a second type of graphics card device, different than the first type of graphics card device, or for a second graphics card device architecture, different than the first graphics card device architecture, identifies at least the resources identified by the second graphics profile in response to determining that a particular computer that includes the first type of graphics card device or a particular graphics card device with the first graphics card device architecture is not available for the second execution of the virtual machine;

determining that the second graphics card device is specific to the other graphics profile;

determining that the second computer includes the second graphics card device; and

selecting the second computer for the second execution of the virtual machine in response to determining that the second computer includes the second graphics card device.

15. The method of claim 10 , comprising:

causing presentation of data identifying the portion of the available resources on the graphics card device allocated to the virtual machine and the amount of resources on the graphics card device consumed by the virtual desktop of the virtual machine.

16. The method of claim 10 , wherein determining the portion of the available resources on the graphics card device allocated to the virtual machine using the graphics profile comprises:

determining a maximum quantity of virtual machines that can be assigned to the graphics card device using the graphics profile; and

determining the portion of the available resources on the graphics card device allocated to the virtual machine using the maximum quantity of virtual machines that can be assigned to the graphics card device.

17. The method of claim 10 , comprising:

determining a profile identifier for the graphics profile; and

creating a mapping between the profile identifier and an identifier for the virtual machine upon execution of the virtual machine on the computer, wherein determining the graphics profile for the virtual machine included in the plurality of virtual machines executing on the computer comprises determining, using the mapping between the profile identifier and the identifier for the virtual machine, the profile identifier.

18. The method of claim 10 , comprising receiving the data from the hypervisor that identifies the graphics profile for the virtual machine.

19. A non-transitory computer readable medium storing instructions executable by a data processing apparatus and upon such execution cause the data processing apparatus to perform operations comprising:

determining resources available on a graphics card device included in a computer executing a plurality of virtual machines, each virtual machine configured to execute a virtual desktop;

determining, based on data received from a hypervisor that manages execution of at least one of the plurality of virtual machines, a graphics profile for a virtual machine included in the plurality of virtual machines executing on the computer, the graphics profile indicating an amount of graphics card resources for execution of the virtual machine;

allocating a portion of the available resources on the graphics card device to the virtual machine using the graphics profile;

computing an amount of resources on the graphics card device actually consumed by a virtual desktop of the virtual machine during a first execution of the virtual machine;

determining, based on the portion of the available resources on the graphics card device allocated to the virtual machine and the amount of resources actually consumed, a second graphics profile that indicates a different portion of resources to allocate to the virtual machine; and

in response to a request for a second execution of the virtual machine, executing the virtual machine using resources allocated according to the second graphics profile.

20. The computer readable medium of claim 19 , wherein the second graphics profile indicates a different portion of resources on a second graphics card device; and

the operations further comprising sending, to the hypervisor, second data for the second graphics profile to cause an execution of the virtual machine using the different portion of resources on the second graphics card device.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2017
From: PRAKASH, LAKSHMANA; KUMAR, SENDHIL
To: VMWARE, INC.
Reel/Frame 041012/0308 →
Priority Claims (1)
IN 201641038044 · Nov 7, 2016 · national
Continuity (1)
Related Publication 20180130171A1 · May 10, 2018