IP Library Granted Patent US 10,102,023
Granted Patent B2
US 10,102,023 · App. 15/197,934 · Granted Oct 16, 2018

Fair unidirectional multi-queue virtual machine migration

Inventors: Michael S. Tsirkin (Ra'anana, IL); Karen Noel (Pembroke, NH)
Assignee: RED HAT ISRAEL, LTD.
G06F9/45558G06F2009/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 10,102,023
App. No.
15/197,934
Granted
Oct 16, 2018
Kind
B2
Abstract

Methods, systems, and computer program products for providing fair unidirectional multi-queue virtual machine migration are disclosed. A computer-implemented method may include maintaining a current scan identifier for each of a plurality of streams used to migrate a virtual machine from a first hypervisor to a second hypervisor, determining when a current scan identifier of a first stream and a current scan identifier of a second stream are associated with different memory states of the virtual machine, and adjusting processing of memory updates when the current scan identifiers are associated with different memory states of the virtual machine. The adjusting may be performed, for example, by pausing processing on each stream having a current scan identifier subsequent to the earliest current scan identifier determined for the streams, and processing memory updates on each stream having a current scan identifier matching the earliest current scan identifier.

Claims (46)

1. A computer-implemented method, comprising:

maintaining, by a hypervisor executed by a processing device, a current scan identifier for each of a plurality of streams used in migrating a virtual machine; and

adjusting, by the hypervisor, the migrating of the virtual machine when a current scan identifier of a first stream in the plurality of streams and a current scan identifier of a second stream in the plurality of streams are associated with different memory states of the virtual machine, wherein the adjusting includes at least one of prioritizing a processing of the first stream and pausing a processing of the first stream.

2. The computer-implemented method of claim 1 , further comprising:

determining, by the hypervisor, whether the current scan identifier of the first stream and the current scan identifier of the second stream are associated with different memory states of the virtual machine.

3. The computer-implemented method of claim 1 , further comprising:

determining, by the hypervisor, that a first memory update on the first stream and a second memory update on the second stream are associated with different memory states of the virtual machine.

4. The computer-implemented method of claim 1 , further comprising:

creating, by the hypervisor, the plurality of streams to migrate the virtual machine to a second hypervisor.

5. The computer-implemented method of claim 1 , further comprising:

determining, by the hypervisor, an earliest current scan identifier among the plurality of streams.

6. The computer-implemented method of claim 1 , further comprising:

pausing, by the hypervisor, processing on each stream in the plurality of streams having a respective current scan identifier subsequent to an earliest current scan identifier among the plurality of streams.

7. The computer-implemented method of claim 1 , further comprising:

processing, by the hypervisor, one or more memory updates on each of one or more of the plurality of streams having a respective current scan identifier associated with an earliest current scan identifier among the plurality of streams.

8. The computer-implemented method of claim 1 , further comprising:

receiving, by the hypervisor, a first memory update associated with the current scan identifier of the first stream.

9. The computer-implemented method of claim 8 , further comprising:

receiving, by the hypervisor, a second memory update associated with the current scan identifier of the second stream.

10. A non-transitory computer-readable medium having instructions recorded thereon, that when executed by a processing device, cause the processing device to perform operations, comprising:

maintaining, by a hypervisor executed by the processing device, a first scan identifier of a first stream and a second scan identifier of a second stream, the first stream and the second stream being used in migrating a virtual machine; and

adjusting, by the hypervisor, the migrating of the virtual machine when the first scan identifier and the second scan identifier are associated with different memory states of the virtual machine, wherein the adjusting includes at least one of prioritizing a processing of the first stream and pausing a processing of the first stream.

11. The non-transitory computer-readable medium of claim 10 , wherein the operations further comprise:

determining, by the hypervisor, whether the first scan identifier and the second scan identifier are associated with different memory states of the virtual machine.

12. The non-transitory computer-readable medium of claim 10 , wherein the operations further comprise:

determining, by the hypervisor, that a first memory update on the first stream and a second memory update on the second stream are associated with different memory states of the virtual machine.

13. The non-transitory computer-readable medium of claim 10 , wherein the operations further comprise:

creating, by the hypervisor, the first stream and the second stream to migrate the virtual machine to a second hypervisor.

14. The non-transitory computer-readable medium of claim 10 , wherein the operations further comprise:

pausing, by the hypervisor, processing on the first stream when the second scan identifier is earlier than the first scan identifier.

15. The non-transitory computer-readable medium of claim 14 , wherein the operations further comprise:

resuming, by the hypervisor, processing on the first stream when the first scan identifier corresponds to or is earlier than the second scan identifier.

16. A computer system, comprising:

a memory; and

a processing device coupled to the memory to:

maintain a current scan identifier for each of a plurality of streams used in migrating a machine; and

adjust processing of the migrating when a current scan identifier of a first stream in the plurality of streams and a current scan identifier of a second stream in the plurality of streams are associated with different memory states of the machine.

17. The computer system of claim 16 , wherein the processing device further is to:

determine that a first memory update on the first stream and a second memory update on the second stream are associated with different memory states of the machine.

18. The computer system of claim 16 , wherein the processing device further is to:

create the plurality of streams to migrate the machine to another location.

19. The computer system of claim 16 , wherein the processing device further is to:

determine an earliest current scan identifier among the plurality of streams.

20. The computer system of claim 16 , wherein the processing device further is to:

pause processing on each stream in the plurality of streams having a respective current scan identifier subsequent to an earliest current scan identifier among the plurality of streams; and

process memory updates on each stream in the plurality of streams having a respective current scan identifier associated with the earliest current scan identifier among the streams.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2016
From: TSIRKIN, MICHAEL S.; NOEL, KAREN
To: RED HAT ISRAEL, LTD.
Reel/Frame 039053/0512 →
Continuity (2)
Continuation 14165203 · Jan 27, 2014
Related Publication 20160306652A1 · Oct 20, 2016
Cited By (1)
US 12,380,207