# US 9,519,548 B2 · Increasing granularity of dirty bit information

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,519,548 B2
- Document ID: US9519548B2
- Status: Granted
- Kind: B2
- Application number: 14/588,594
- Filed: 2015-01-02
- Published: 2015-07-02
- Granted: 2016-12-13
- Earliest claimed: 2011-04-28
- Assignees: VMware, Inc.
- Applicants: VMware, Inc.
- Inventors: Benjamin C. Serebrin; Bhavesh Mehta
- Web page: https://patentgrep.com/patent/US9519548B2

## CPC

- G06F 11/1451: {by selection of backup contents}
- G06F 11/1464: {for networked environments}
- G06F 12/1018: involving hashing techniques, e.g. inverted page tables
- G06F 12/1027: using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2201/815: Virtual
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F 2212/651: Multi-level translation tables
- G06F 2212/657: Virtual address space management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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/(2M)-th of a memory page.

## Claims

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 2)

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.

### Claim 4 (depends on 2)

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.

### Claim 5 (depends on 2)

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.

### Claim 6 (depends on 1)

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.

### Claim 7 (depends on 6)

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.

### Claim 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.

### Claim 9 (depends on 8)

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.

### Claim 10 (depends on 9)

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.

### Claim 11 (depends on 9)

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.

### Claim 12 (depends on 9)

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.

### Claim 13 (depends on 8)

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.

### Claim 14 (depends on 13)

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.

### Claim 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.

### Claim 16 (depends on 15)

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.

### Claim 17 (depends on 16)

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.

### Claim 18 (depends on 16)

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.

### Claim 19 (depends on 16)

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.

### Claim 20 (depends on 15)

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.
