IP Library › Granted Patent US 8,826,278
Granted Patent B2
US 8,826,278 · App. 13/346,433 · Granted Sep 2, 2014

Controlling memory conditions in a virtual machine

Inventors: Xiaoxin Chen (Cupertino, CA); Carl A. Waldspurger (Palo Alto, CA); Anil Rao (San Jose, CA)
Assignee: VMware, Inc.
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 8,826,278
App. No.
13/346,433
Granted
Sep 2, 2014
Kind
B2
Abstract

A method of managing host physical memory using a balloon application executing within a guest virtual machine (GVM) running on a host platform is described. The balloon application receives allocation parameters from an entity outside the GVM, the allocation parameters identifying an amount of memory for the balloon application to allocate. The balloon application adjusts the allocated amount of memory according to the allocated amount. Physical memory backing up the allocated memory can then be assigned by virtualization software for use by another virtual machine running on the host platform.

Claims (33)

1. A method of managing host physical memory using a balloon application executing within a guest virtual machine running on a host platform, the method comprising:

receiving, by the balloon application, allocation parameters from an entity outside a context of the guest virtual machine, the allocation parameters identifying an amount of memory for the balloon application to allocate;

increasing, according to the allocation parameters, an allocated amount of memory provided by a guest operating system executing within the guest virtual machine to the balloon application;

writing a predetermined value to physical memory that is mapped to a page of newly allocated memory described by a guest virtual page number when the allocated amount of memory is increased, the predetermined value enabling the physical memory and the page of newly allocated memory to be identified as being allocated to the balloon application and eligible for page sharing; and

enabling the physical memory that includes the predetermined value to be mapped to the page of newly allocated memory and a second page of memory allocated by the balloon application.

2. The method of claim 1 , wherein the balloon application receives the allocation parameters from the entity outside the context of the guest virtual machine by way of a balloon application driver executing in the context of the guest virtual machine.

3. The method of claim 1 , further comprising transmitting an identity of the newly allocated memory that is allocated to the balloon application when the balloon application increases the allocated amount of memory.

4. The method of claim 3 , wherein the identity of the newly allocated memory is transmitted by causing a guest physical page number of the newly allocated memory to be sent to the entity outside the context of the guest virtual machine.

5. The method of claim 4 , wherein the balloon application sends the guest virtual page number of the newly allocated memory to a balloon application driver, wherein the balloon application driver is caused to convert the guest virtual page number of the newly allocated memory to a guest physical page number, and then transmit the guest physical page number to the entity outside the context of the guest virtual machine.

6. The method of claim 1 , wherein the entity outside the context of the guest virtual machine is a resource scheduler executing within the host platform.

7. The method of claim 1 , wherein the predetermined value is written to the page of the newly allocated memory until the page of the newly allocated memory is full.

8. The method of claim 1 , wherein each page of the newly allocated memory is a guest physical page.

9. The method of claim 8 , wherein each page of the newly allocated memory includes the predetermined value; and

wherein each page of the newly allocated memory that includes the predetermined value is eligible to share the physical memory that includes the predetermined value.

10. The method of claim 1 , wherein enabling the physical memory that includes the predetermined value to be mapped to the page of newly allocated memory and a second page of newly allocated memory enables physical memory, that does not include the predetermined value, backing up the allocated memory available for use by the host platform to assign to another virtual machine running on the host platform.

11. A non-transitory machine readable medium embodying program instructions for causing a computer system to implement a method for managing host physical memory using a balloon application executing within a guest virtual machine running on a host platform, the method comprising:

receiving, by the balloon application, allocation parameters from an entity outside a context of the guest virtual machine, the allocation parameters identifying an amount of memory for the balloon application to allocate;

increasing, according to the allocation parameters, an allocated amount of memory provided by a guest operating system executing within the guest virtual machine to the balloon application;

writing a predetermined value to physical memory that is mapped to a page of newly allocated memory described by a guest virtual page number when the allocated amount of memory is increased, the predetermined value enabling the physical memory and the page of newly allocated memory to be identified as being allocated to the balloon application and eligible for page sharing; and

enabling the physical memory that includes the predetermined value to be mapped to the page of newly allocated memory and a second page of memory allocated by the balloon application.

12. The machine readable medium of claim 11 , wherein the balloon application receives the allocation parameters from the entity outside the context of the guest virtual machine by way of a balloon application driver executing in the context of the guest virtual machine.

13. The machine readable medium of claim 11 , wherein the method further comprises transmitting an identity of the newly allocated memory that is allocated to the balloon application when the balloon application increases the allocated amount of memory.

14. The machine readable medium of claim 13 , wherein the identity of the newly allocated memory is transmitted by causing a guest physical page number of the newly allocated memory to be sent to the entity outside the context of the guest virtual machine.

15. The machine readable medium of claim 14 , wherein the balloon application sends the guest virtual page number of the newly allocated memory to a balloon application driver, wherein the balloon application driver is caused to convert the guest virtual page number of the newly allocated memory to a guest physical page number, and then transmit the guest physical page number to the entity outside the context of the guest virtual machine.

16. The machine readable medium of claim 11 , wherein the entity outside the context of the guest virtual machine is a resource scheduler executing within the host platform.

17. A virtualized computer system managing host physical memory using a balloon application executing within a guest virtual machine, the system comprising:

a balloon application executing within the guest virtual machine, the balloon application receiving allocation parameters from an entity that executes outside a context of the guest virtual machine, the allocation parameters identifying an amount of memory for the balloon application to allocate, the balloon application causing a guest operating system executing within the guest virtual machine to increase, according to the allocation parameters, an amount of memory provided by the guest operating system to the balloon application; and

wherein the balloon application writes a predetermined value to physical memory that is mapped to a page of newly allocated memory described by a guest virtual page number when the allocated amount of memory is increased, the predetermined value enabling the physical memory and the page of newly allocated memory to be identified as being allocated to the balloon application and eligible for page sharing, the balloon application thereby enabling the physical memory that includes the predetermined value to be mapped to the page of newly allocated memory and a second page of memory allocated by the balloon application.

18. The virtualized computer system of claim 17 , wherein the balloon application receives the allocation parameters from the entity that is executed outside the context of the guest virtual machine by way of a balloon application driver executing in the context of the guest virtual machine.

19. The virtualized computer system of claim 17 , wherein the balloon application transmits an identity of the newly allocated memory that is allocated to the balloon application when the balloon application increases the allocated amount of memory, the balloon application transmitting the identity of the newly allocated memory to the entity that is executed outside the context of the guest virtual machine.

20. The virtualized computer system of claim 19 , wherein the identity of the newly allocated memory is transmitted by causing a guest physical page number of the newly allocated memory to be sent to the entity that is executed outside the context of the guest virtual machine.

21. The virtualized computer system of claim 20 , wherein the balloon application sends the guest virtual page number of the newly allocated memory to a balloon application driver, wherein the balloon application driver is caused to convert the guest virtual page number of the newly allocated memory to a guest physical page number, and then transmit the guest physical page number to the entity that is executed outside the context of the guest virtual machine.

22. The virtualized computer system of claim 17 , wherein the entity that is executed outside the context of the guest virtual machine is a resource scheduler executing within the host platform.

Assignments (1)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
Continuity (3)
Continuation 11525373 · Sep 21, 2006
Provisional Application 60796069 · Apr 27, 2006
Related Publication 20120110577A1 · May 3, 2012