IP Library Granted Patent US 9,501,224
Granted Patent B2
US 9,501,224 · App. 14/390,249 · Granted Nov 22, 2016

Method and system for memory oversubscription for virtual machines

Inventors: Horacio Andres Lagar Cavilla (East Toronto, CA); Adin Matthew Scannell (Toronto, CA); Timothy James Smith (W. Toronto, CA); Peter Feiner (Toronto, CA); Mushfiq Mahmood (Scarborough, CA); David Richard Scannell (Toronto, CA); Jing Chih Su (Toronto, CA)
Assignee: Goolge Inc.
G06F3/0604G06F3/0662G06F3/0673G06F9/45533G06F9/45558G06F2009/45583
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,501,224
App. No.
14/390,249
Granted
Nov 22, 2016
Kind
B2
Abstract

A method for oversubscribing a host memory of a host running a virtual machine monitor (VMM), comprising, examining a virtual machine (VM) memory for a VM for metadata associated with the VM memory, the metadata maintained by a guest OS running on the VM, collecting the metadata for the VM memory, and managing the VM memory using the metadata for oversubscribing a host memory.

Claims (40)

1. A method for oversubscribing a host memory of a host running a virtual machine monitor (VMM), comprising:

examining a virtual machine (VM) memory for the VM for metadata associated with the VM memory, the metadata including information from a physical frame number (PFN) database extracted from a kernel of the guest OS, the PFN database maintaining state information for each PFN the guest OS the VM knows about;

collecting the metadata for the VM memory; and

managing the VM memory using the metadata for oversubscribing a host memory.

2. The method of claim 1 , wherein the step of managing comprises:

selecting a portion of the VM memory for removal based on the metadata for the portion of the VM memory; and

removing the portion of the VM memory from the VM.

3. The method of claim 1 , wherein the step of managing comprises:

selecting one or more memory pages of the VM memory for removal based on the metadata for the one or more memory pages; and

removing the selected memory pages from the VM.

4. The method of claim 3 , wherein the selecting for removal is based on the metadata indicating the memory page is free or zero.

5. The method of claim 2 , wherein the memory where the metadata is non-pageable is not selected for removal.

6. The method of claim 1 , wherein the metadata for the memory is one of: free, zero, or non-pageable.

7. The method of claim 6 , wherein the step of collecting comprises:

inspecting the physical frame number (PFN) database for the free or zero metadata for the memory.

8. The method of claim 5 , wherein the step of collecting comprises:

searching kernel virtual address ranges for the memory with the non-pageable metadata.

9. The method of claim 7 , wherein the step of collecting further comprises:

searching kernel virtual address ranges for the memory with the non-pageable metadata.

10. The method of claim 1 , wherein the steps are performed by the virtual machine monitor (VMM).

11. The method of claim 1 , wherein the memory, the VM, and the guest OS are manipulated without the intervention by the guest OS.

12. A method for managing a host memory of a host by a virtual machine monitor (VMM), comprising:

introspecting a physical frame number (PFN) database of a virtual machine (VM) memory for a VM for metadata associated with the VM memory, the metadata maintained by a guest OS running on the VM, the metadata indicating whether a given frame is used and whether the given frame belongs to special regions that should not be removed or unmapped; and

oversubscribing the host memory by using the metadata.

13. The method of claim 12 , wherein the step of oversubscribing comprises:

selecting a portion of the VM memory for removal based on the metadata for the portion of the VM memory;

removing the portion of the VM memory from the VM.

14. The method of claim 13 , wherein the selecting for removal is based on the metadata indicating the memory is free or zero.

15. The method of claim 13 , wherein the memory that belongs to non-pageable kernel virtual address regions is not selected for removal.

16. The method of claim 12 , wherein the metadata for the memory or the memory page is one of: free, zero, or non-pageable.

17. The method of claim 16 , wherein the step of introspecting comprises:

inspecting the PFN database for the free or zero metadata for the memory.

18. The method of claim 12 , wherein the step of oversubscribing comprises:

selecting one or more memory pages of the VM memory for removal based on the metadata for the one or more memory pages;

removing the selected memory pages from the VM.

19. The method of claim 12 , wherein the memory, the VM, and the guest OS are manipulated without the knowledge of the VM and the guest OS.

20. A system for oversubscribing a host memory of a host running a virtual machine monitor (VMM), comprising:

a virtual machine (VM) memory on a VM, the VM running in the host memory;

a metadata database with metadata associated with the VM memory, the metadata maintained by a guest OS, the metadata including information from a physical frame number (PFN) database extracted from a kernel of the guest OS, the PFN database maintaining state information for each PFN the guest OS the VM knows about;

wherein, the VMM manages the VM memory using the metadata for oversubscribing a host memory.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044097/0658 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2015
From: GRIDCENTRIC INC.
To: GOOGLE INC.
Reel/Frame 037006/0495 →
Continuity (2)
Provisional Application 61619761 · Apr 3, 2012
Related Publication 20150058580A1 · Feb 26, 2015