IP Library Granted Patent US 9,519,548
Granted Patent B2
US 9,519,548 · App. 14/588,594 · Granted Dec 13, 2016

Increasing granularity of dirty bit information

Inventors: Benjamin C. Serebrin (Sunnyvale, CA); Bhavesh Mehta (Mountain View, CA)
Assignee: VMware, Inc.
G06F11/1451G06F11/1464G06F12/1018G06F12/1027G06F2009/45583G06F2201/815G06F2201/84G06F2212/651G06F2212/657
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,519,548
App. No.
14/588,594
Granted
Dec 13, 2016
Kind
B2
Abstract

One or more unused bits of a virtual address range are allocated for aliasing so that multiple virtually addressed sub-pages can be mapped to a common memory page. When one bit is allocated for aliasing, dirty bit information can be provided at a granularity that is one-half of a memory page. When M bits are allocated for aliasing, dirty bit information can be provided at a granularity that is 1/(2 M )-th of a memory page.

Claims (57)

1. A method of backing up a virtual machine running in a first computer system, the first computer system having a memory management unit that manages mappings of virtual addresses to physical memory pages using hierarchically-arranged page tables, the method comprising:

scanning entries of a first page table and a second page table distinct from the first page table, an entry in the first page table and an entry in the second page table each referencing a common physical memory page;

determining that a first section of the common physical memory page is dirty based on the entry of the first page table that references the common physical memory page and

determining that a second section of the common physical memory page is not dirty based on the entry of the second page table that references the common physical memory page; and

transmitting at least a portion of the first section of the common physical memory page to a second computer system.

2. The method of claim 1 , further comprising:

performing an operation on the first section of the common physical memory page to determine changes to data stored therein; and

transmitting the changes to the data stored in the first section of the common physical memory page to the second computer system.

3. The method of claim 2 , wherein the first and second sections of the common physical memory page do not overlap and each has a size that is at most one-half the size of the common physical memory page.

4. The method of claim 2 , wherein the first and second sections of the common physical memory page do not overlap and each has a size that is 1/(2M) of the size of the common physical memory page, where M is an integer greater than or equal to 1.

5. The method of claim 2 , further comprising:

performing an operation on a portion of the second section of the common physical memory page that is adjacent to the first section to determine changes to data stored in said portion of the second section of the common physical memory page; and

transmitting the changes to the data stored in said portion of the second section of the common physical memory page to the backup second computer system.

6. The method of claim 1 , further comprising:

transmitting the entire first section of the common physical memory page to the second computer system,

wherein the second computer system has a memory management unit that manages mappings of virtual addresses to physical memory pages using hierarchically arranged page tables, and

wherein the first section stores an executing state of the virtual machine.

7. The method of claim 6 , further comprising:

stunning the virtual machine; and

transmitting all sections of physical memory pages that are dirty to the second computer system.

8. A non-transitory computer-readable medium that stores instructions that are executable by a first computer system, wherein the instructions, when executed, cause the first computer system to perform a method of backing up a virtual machine running therein, the first computer system having a memory management unit that manages mappings of virtual addresses to physical memory pages using hierarchically-arranged page tables, and wherein the method comprises:

scanning entries of a first page table and a second page table distinct from the first page table, an entry in the first page table and an entry in the second page table each referencing a common physical memory page;

determining that a first section of the common physical memory page is dirty based on the entry of the first page table that references the common physical memory page and determining that a second section of the common physical memory page is not dirty based on the entry of the second page table that references the common physical memory page; and

transmitting at least a portion of the first section of the common physical memory page to a second computer system.

9. The computer-readable medium of claim 8 , wherein the method further comprises:

performing an operation on the first section of the common physical memory page to determine changes to data stored therein; and

transmitting the changes to the data stored in the first section of the common physical memory page to the second computer system.

10. The computer-readable medium of claim 9 , wherein the first and second sections of the common physical memory page do not overlap and each has a size that is at most one-half the size of the common physical memory page.

11. The computer-readable medium of claim 9 , wherein the first and second sections of the common physical memory page do not overlap and each has a size that is 1/(2M) of the size of the common physical memory page, where M is an integer greater than or equal to 1.

12. The computer-readable medium of claim 9 , wherein the method further comprises:

performing an operation on a portion of the second section of the common physical memory page that is adjacent to the first section to determine changes to data stored in said portion of the second section of the common physical memory page; and

transmitting the changes to the data stored in said portion of the second section of the common physical memory page to the backup second computer system.

13. The computer-readable medium of claim 8 , wherein the method further comprises:

transmitting the entire first section of the common physical memory page to the second computer system,

wherein the second computer system has a memory management unit that manages mappings of virtual addresses to physical memory pages using hierarchically arranged page tables, and

wherein the first section stores an executing state of the virtual machine.

14. The computer-readable medium of claim 13 , wherein the method further comprises:

stunning the virtual machine; and

transmitting all sections of physical memory pages that are dirty to the second computer system.

15. A computer system comprising:

a memory; and

a processor having a memory management unit that manages mappings of virtual addresses to physical memory pages using hierarchically-arranged page tables, and configured to perform a method of backing up a virtual machine running on the computer system, wherein the method comprises:

scanning entries of a first page table and second page table distinct from the first page table, an entry in the first page table and an entry in the second page table each referencing a common physical memory page;

determining that a first section of the common physical memory page is dirty based on the entry of the first page table that references the common physical memory page and determining that a second section of the common physical memory page is not dirty based on the entry of the second page table that references the common physical memory page; and

transmitting at least a portion of the first section of the common physical memory page to a second computer system.

16. The system of claim 15 , wherein the method further comprises:

performing an operation on the first section of the common physical memory page to determine changes to data stored therein; and

transmitting the changes to the data stored in the first section of the common physical memory page to the second computer system.

17. The system of claim 16 , wherein the first and second sections of the common physical memory page do not overlap and each has a size that is at most one-half the size of the common physical memory page.

18. The system of claim 16 , wherein the first and second sections of the common physical memory page do not overlap and each has a size that is 1/(2M) of the size of the common physical memory page, where M is an integer greater than or equal to 1.

19. The system of claim 16 , wherein the method further comprises:

performing an operation on a portion of the second section of the common physical memory page that is adjacent to the first section to determine changes to data stored in said portion of the second section of the common physical memory page; and

transmitting the changes to the data stored in said portion of the second section of the common physical memory page to the backup second computer system.

20. The system of claim 15 , wherein the method further comprises:

transmitting the entire first section of the common physical memory page to the second computer system,

wherein the second computer system has a memory management unit that manages mappings of virtual addresses to physical memory pages using hierarchically arranged page tables, and

wherein the first section stores an executing state of the virtual machine.

Assignments (1)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067103/0030 →
Continuity (2)
Division 13096755 · Apr 28, 2011
Related Publication 20150186220A1 · Jul 2, 2015