Increasing granularity of dirty bit information in hardware assisted memory management systems
First Claim
1. A method of backing up a virtual machine running in a computer system having a memory management unit that manages memory mappings using a first set of hierarchically-arranged page tables for mapping guest virtual addresses to guest physical addresses and a second set of hierarchically-arranged page tables for mapping the guest physical addresses to machine memory addresses, comprising:
- scanning entries of first and second page tables in the second set that reference a common machine memory page;
determining that a first section of the common machine memory page is dirty based on the entry of the first page table that references the common machine memory page and determining that a second section of the common machine memory page is not dirty based on the entry of the second page table that references the common machine memory page;
performing an operation on the first section of the common machine memory page to determine changes to data stored in the first section of the common machine memory page while not performing an operation on the second section of the common machine memory page to determine changes to data stored in the second section of the common machine memory; and
transmitting the changes to the data stored in the first section of the common machine memory page to a backup system.
2 Assignments
0 Petitions
Accused Products
Abstract
In a computer system having virtual machines, one or more unused bits of a guest physical 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/(2M)-th of a memory page.
14 Citations
20 Claims
-
1. A method of backing up a virtual machine running in a computer system having a memory management unit that manages memory mappings using a first set of hierarchically-arranged page tables for mapping guest virtual addresses to guest physical addresses and a second set of hierarchically-arranged page tables for mapping the guest physical addresses to machine memory addresses, comprising:
-
scanning entries of first and second page tables in the second set that reference a common machine memory page; determining that a first section of the common machine memory page is dirty based on the entry of the first page table that references the common machine memory page and determining that a second section of the common machine memory page is not dirty based on the entry of the second page table that references the common machine memory page; performing an operation on the first section of the common machine memory page to determine changes to data stored in the first section of the common machine memory page while not performing an operation on the second section of the common machine memory page to determine changes to data stored in the second section of the common machine memory; and transmitting the changes to the data stored in the first section of the common machine memory page to a backup system. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A non-transitory computer readable medium comprising instructions for causing a computer system carry out a method of backing up a virtual machine running in the computer system, the computer system having a memory management unit that manages memory mappings using a first set of hierarchically-arranged page tables for mapping guest virtual addresses to guest physical addresses and a second set of hierarchically-arranged page tables for mapping the guest physical addresses to machine memory addresses, wherein the method comprises the steps of:
-
scanning entries of first and second page tables in the second set that reference a common machine memory page; determining that a first section of the common machine memory page is dirty based on the entry of the first page table that references the common machine memory page and determining that a second section of the common machine memory page is not dirty based on the entry of the second page table that references the common machine memory page; performing an operation on the first section of the common machine memory page to determine changes to data stored in the first section of the common machine memory page while not performing an operation on the second section of the common machine memory page to determine changes to data stored in the second section of the common machine memory page; and transmitting the changes to the data stored in the first section of the common machine memory page to a backup system. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A computer system comprising a processor and memory, and a memory management unit that manages memory mappings using a first set of hierarchically arranged page tables for mapping guest virtual addresses to guest physical addresses and a second set of hierarchically-arranged page tables for mapping the guest physical addresses to machine memory addresses and a processor, wherein the processor is programmed to carry out a method of backing up a virtual machine running in the computer system, wherein the method comprises the steps of:
-
scanning entries of first and second page tables in the second set that reference a common machine memory page; determining that a first section of the common machine memory page is dirty based on the entry of the first page table that references the common machine memory page and determining that a second section of the common machine memory page is not dirty based on the entry of the second page table that references the common machine memory page; performing an operation on the first section of the common machine memory page to determine changes to data stored in the first section of the common machine memory page while not performing an operation on the second section of the common machine memory page to determine changes to data stored in the second section of the common machine memory page; and transmitting the changes to the data stored in the first section of the common machine memory page to a backup system. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification