# US 12,001,869 B2 · Memory over-commit support for live migration of virtual machines

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

- Number: US 12,001,869 B2
- Document ID: US12001869B2
- Status: Granted
- Kind: B2
- Application number: 17/185,695
- Filed: 2021-02-25
- Published: 2022-08-25
- Granted: 2024-06-04
- Earliest claimed: 2021-02-25
- Assignees: Red Hat, Inc.
- Applicants: Red Hat, Inc.
- Inventors: Michael Tsirkin; David Alan Gilbert
- Web page: https://patentgrep.com/patent/US12001869B2

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/4856: {resumption being on a different machine, e.g. task migration, virtual machine migration (G06F9/5088 takes precedence)}
- G06F 9/5016: {the resource being the memory}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 12/0813: with a network or matrix configuration
- G06F 12/0868: Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
- G06F 12/0873: Mapping of cache memory to specific storage devices or parts thereof
- G06F 12/0882: Page mode
- G06F 12/1009: using page tables, e.g. page table structures
- G06F 12/0815: Cache consistency protocols
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2212/1024: Latency reduction
- G06F 2212/152: Virtualized environment, e.g. logically partitioned system
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods for providing memory over-commit support for live migration of virtual machines (VMs). In one implementation, a processing device of a source host computer system may identify a host page cache associated with a VM undergoing live migration from the source to a destination host computer system. The host page cache comprises a first plurality of memory pages associated with the VM. The processing device may transmit, from the source to the destination, at least a part of the host page cache. The processing device may discard the part of the host page cache. The processing device may read into the host page cache one or more memory pages of a second plurality of memory pages associated with the VM. The processing device may transmit, from the source to the destination, the one or more memory pages stored by the host page cache.

## Claims

### Claim 1

A method comprising:
allocating, by a source host computer system, a host page cache and a backing store to a virtual machine (VM), the VM undergoing live migration from the source host computer system to a destination host computer system;
transmitting, from the source host computer system to the destination host computer system, in a priority order, at least a part of the host page cache, wherein the transmission of the part of the host page cache causes an instruction to start the VM on the destination host computer system following the transmission of the part of the host page cache;
discarding the part of the host page cache;
reading, into the host page cache, from the backing store, one or more memory pages of a second plurality of memory pages associated with the VM; and
transmitting, from the source host computer system to the destination host computer system, the one or more memory pages stored by the host page cache.

### Claim 2 (depends on 1)

The method of claim 1, wherein the second plurality of memory pages are stored on a disk file.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
responsive to determining that one or more memory pages associated with the part of the host page cache have been modified after having been transmitted to the destination host computer system, identifying one or more modified memory pages; and
transmitting the one or more modified memory pages from the source host computer system to the destination host computer system.

### Claim 4 (depends on 3)

The method of claim 3, wherein determining that one or more memory pages associated with the part of the host page cache have been modified after having been transmitted to the destination host computer system comprises:
identifying, in a memory data structure comprising a plurality of records, a respective record associated with each of the one or more memory pages; and
determining, based on the respective record, whether the associated memory page has been modified.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
responsive to transmitting the part of the host page cache, marking the part of the host page cache as clean in a page tracking memory data structure.

### Claim 6 (depends on 1)

The method of claim 1, wherein discarding the part of the host page cache comprises:
unmapping one or more memory pages in the part of the host page cache in a page tracking memory data structure.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
receiving a notification that the VM has been successfully started on the destination host computer system.

### Claim 8

A system comprising:
a memory; and
a processing device of a source host computer system operatively coupled to the memory, the processing device to:
allocate a host page cache and a backing store to a virtual machine (VM), the VM undergoing live migration from the source host computer system to a destination host computer system;
transmit, from the source host computer system to the destination host computer system, in a priority order, at least a part of the host page cache, wherein the transmission of the part of the host page cache causes an instruction to start the VM on the destination host computer system following the transmission of the part of the host page cache;
discard the part of the host page cache;
read, into the host page cache, from the backing store, one or more memory pages of a second plurality of memory pages associated with the VM; and
transmit, from the source host computer system to the destination host computer system, the one or more memory pages stored by the host page cache.

### Claim 9 (depends on 8)

The system of claim 8, wherein the second plurality of memory pages are stored on a disk file.

### Claim 10 (depends on 8)

The system of claim 8, wherein the processing device is further to:
responsive to determining that one or more memory pages associated with the part of the host page cache have been modified after having been transmitted to the destination host computer system, identify one or more modified memory pages; and
transmit the one or more modified memory pages from the source host computer system to the destination host computer system.

### Claim 11 (depends on 10)

The system of claim 10, wherein determining that one or more memory pages associated with the part of the host page cache have been modified after having been transmitted to the destination host computer system comprises:
identifying, in a memory data structure comprising a plurality of records, a respective record associated with each of the one or more memory pages; and
determining, based on the respective record, whether the associated memory page has been modified.

### Claim 12 (depends on 8)

The system of claim 8, wherein the processing device is further to:
responsive to transmitting the part of the host page cache, mark the part of the host page cache as clean in a page tracking memory data structure.

### Claim 13 (depends on 8)

The system of claim 8, wherein discarding the part of the host page cache comprises:
unmapping one or more memory pages in the part of the host page cache in a page tracking memory data structure.

### Claim 14

A non-transitory computer-readable media storing instructions that, when executed, cause a processing device to:
allocate, by a source host computer system, a host page cache and a backing store to a virtual machine (VM), the VM undergoing live migration from the source host computer system to a destination host computer system;
transmit, from the source host computer system to the destination host computer system, in a priority order, at least a part of the host page cache, wherein the transmission of the part of the host page cache causes an instruction to start the VM on the destination host computer system following the transmission of the part of the host page cache;
discard the part of the host page cache;
read, into the host page cache, from the backing store, one or more memory pages of a second plurality of memory pages associated with the VM; and
transmit, from the source host computer system to the destination host computer system, the one or more memory pages stored by the host page cache.

### Claim 15 (depends on 14)

The non-transitory computer-readable media of claim 14, wherein the second plurality of memory pages are stored on a disk file.

### Claim 16 (depends on 14)

The non-transitory computer-readable media of claim 14, wherein the processing device is further to:
responsive to determining that one or more memory pages associated with the part of the host page cache have been modified after having been transmitted to the destination host computer system, identify one or more modified memory pages; and
transmit the one or more modified memory pages from the source host computer system to the destination host computer system.

### Claim 17 (depends on 16)

The non-transitory computer-readable media of claim 16, wherein determining that one or more memory pages associated with the part of the host page cache have been modified after having been transmitted to the destination host computer system comprises:
identifying, in a memory data structure comprising a plurality of records, a respective record associated with each of the one or more memory pages; and
determining, based on the respective record, whether the associated memory page has been modified.

### Claim 18 (depends on 14)

The non-transitory computer-readable media of claim 14, wherein the processing device is further to:
responsive to transmitting the part of the host page cache, mark the part of the host page cache as clean in a page tracking memory data structure.

### Claim 19 (depends on 14)

The non-transitory computer-readable media of claim 14, wherein discarding the part of the host page cache comprises:
unmapping one or more memory pages in the part of the host page cache in a page tracking memory data structure.

### Claim 20 (depends on 14)

The non-transitory computer-readable media of claim 14, wherein the processing device is further to:
receive a notification that the VM has been successfully started on the destination host computer system.
