IP Library Granted Patent US 12,001,869
Granted Patent B2
US 12,001,869 · App. 17/185,695 · Granted Jun 4, 2024

Memory over-commit support for live migration of virtual machines

Inventors: Michael Tsirkin (Yokneam, IL); David Alan Gilbert (Farnborough, GB)
Assignee: Red Hat, Inc.
G06F9/45558G06F9/5077G06F12/0868G06F12/0873G06F12/0882G06F2009/4557G06F2009/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 12,001,869
App. No.
17/185,695
Granted
Jun 4, 2024
Kind
B2
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 (57)

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.

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

3. 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.

4. 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.

5. 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.

6. 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.

7. The method of claim 1 , further comprising:

receiving a notification that the VM has been successfully started on the destination host computer system.

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.

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

10. 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.

11. 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.

12. 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.

13. 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.

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.

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

16. 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.

17. 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.

18. 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.

19. 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.

20. 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.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2021
From: TSIRKIN, MICHAEL; GILBERT, DAVID ALAN
To: RED HAT, INC.
Reel/Frame 055416/0822 →
Continuity (1)
Related Publication 20220269522A1 · Aug 25, 2022