IP Library Granted Patent US 10,761,872
Granted Patent B1
US 10,761,872 · App. 15/840,619 · Granted Sep 1, 2020

Windows memory reduction at boot time by memory page reset to zero for virtual machine

Inventors: Denis Lunev (Moscow, RU); Alexey Kobets (Seattle, WA)
Assignee: Virtuozzo International GmbH
G06F9/45558G06F9/4401G06F9/45545G06F12/1009G06F2009/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 10,761,872
App. No.
15/840,619
Granted
Sep 1, 2020
Kind
B1
Abstract

A method for zeroing guest memory of a VM during boot up, includes the guest OS attempts to set a page to zero. A page fault is generated and is handled by the hypervisor. The page is mapped by the hypervisor to a page in host memory, and is given to the guest. The guest OS attempts to set the next page to zero. Another page fault is generated the hypervisor unmaps the host memory page, and the second page is mapped to the same page. The hypervisor then gives the page to the guest, which contains all zeros. The process is repeated for remaining pages of the guest memory.

Claims (42)

1. A method for zeroing guest memory of a Virtual Machine (VM) during boot up, the method comprising:

(a) setting a host memory page to zero;

(b) issuing a command to set a first guest memory page to zero;

(c) waiting for a page fault in the Virtual Machine and transferring the page fault to a supervisory component running on a host node;

(d) mapping the first guest memory page to the host memory page;

(e) giving the host memory page to the VM to correspond to the first guest memory page;

(f) in the VM, setting the first guest memory page to zero;

(g) issuing a command to set a second guest memory page to zero;

(h) waiting for a second page fault and transferring the second page fault to the supervisory component;

(i) unmapping the first guest memory page from the host memory page;

(j) mapping the second guest memory page to the host memory page;

(k) giving the host memory page to the VM to correspond to the second guest memory page;

(l) in the VM, setting the second guest memory page to zero; and

(m) repeating steps (g) though (l) for remaining pages of the guest memory,

wherein the steps (a)-(m) are performed during boot up of the VM.

2. The method of claim 1 , wherein the supervisory component, in step (i), first checks if the host memory page is already mapped to the VM.

3. The method of claim 1 , wherein step (m) is repeated until a predetermined counter value of the first guest memory page being non-zero is reached.

4. The method of claim 1 , wherein steps (a-m) are repeated for a different VM.

5. The method of claim 4 , wherein the host memory page is shared for both VMs.

6. The method of claim 1 , wherein multiple VMs are launched on the host, and each VM has its own host memory page that is not shared with other VMs.

7. The method of claim 1 , wherein the VM has multiple host memory pages, and wherein the steps (a)-(m) are repeated for all the multiple host memory pages.

8. A system for zeroing guest memory of a Virtual Machine (VM) during boot up, the system comprising:

(a) a hardware processor running a host operating system (OS);

(b) a host memory page set to zero;

(c) a guest OS of a Virtual Machine (VM) that issues a command to set a first guest memory page to zero;

(d) a supervisory component running on the processor, and to which a first page fault in the Virtual Machine that is triggered by the command is transferred;

(e) wherein the first guest memory page is mapped to the host memory page;

(f) the supervisory component is configured to give the host memory page to the VM to correspond to the first guest memory page;

(g) the VM is configured to set the first guest memory page to zero;

(h) the guest OS is configured to issue a second command to set a second guest memory page to zero;

(i) the supervisory component is configured to process the second page fault triggered by the second command;

(j) the supervisory component is configured to unmap the first guest memory page from the host memory page, and to map the second guest memory page to the host memory page;

(k) the supervisory component is configured to give the host memory page to the VM to correspond to the second guest memory page;

(l) the VM is configured to set the second guest memory page to zero; and

(m) wherein the supervisory component is configured to repeat (i)-(l) for remaining pages of the guest memory, and,

(n) wherein (c)-(m) are performed during boot up of the VM.

9. The system of claim 8 , wherein the supervisory component is configured to first check if the host memory page is already mapped to the VM.

10. The system of claim 8 , wherein (m) is repeated until a predetermined counter value of the first guest memory page being non-zero is reached.

11. The system of claim 8 , wherein the supervisory component repeats the process for a different VM.

12. The system of claim 11 , wherein the host memory page is shared for both VMs.

13. The system of claim 8 , wherein multiple VMs are launched on the host, and each VM has its own host memory page that is not shared with other VMs.

14. The system of claim 8 , wherein the VM has multiple host memory pages, and wherein (a)-(m) are repeated for all the multiple host memory pages.

Assignments (2)
SECURITY INTEREST IN TRADEMARK, PATENT, AND COPYRIGHT RIGHTS Recorded Dec 22, 2022
From: VIRTUOZZO INTERNATIONAL GMBH; ONAPP LIMITED
To: WILMINGTON TRUST (LONDON) LIMITED
Reel/Frame 062206/0557 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2017
From: LUNEV, DENIS; KOBETS, ALEXEY
To: VIRTUOZZO INTERNATIONAL GMBH
Reel/Frame 044862/0066 →
Cited By (1)
US 12,505,050