POST-COPY BASED LIVE VIRTUAL MACHINE MIGRATION VIA SPECULATIVE EXECUTION AND PRE-PAGING
First Claim
1. A method comprising:
- post-copy migrating a guest virtual machine from a migration source host to a migration target host, the guest virtual machine having an instruction stream of instructions;
executing the instruction stream of the guest virtual machine on the migration target host, the guest virtual machine stalling execution of the instruction stream when the guest virtual machine encounters a page fault for a page reference in the instruction stream to a not-present page, the not-present page being resident on the migration source host and not resident on the migration target host;
determining, by the migration target host, when the guest virtual machine encounters the page fault; and
when the guest virtual machine encounters the page fault;
requesting, by the migration target host, the not-present page from the migration source host for loading on the migration target host;
emulating, on an emulator executing on or in communication with the migration target host, continued execution of the instruction stream of the guest virtual machine;
identifying, by the emulator, future page references to future pages from the emulated continued execution of the instruction stream; and
requesting, by the migration target host, the future pages corresponding to the identified future page references from the migration source host in parallel with the not-present page request for the not-present page, so as to prefetch the future pages to the migration target host while loading the not-present page on the migration target host.
2 Assignments
0 Petitions
Accused Products
Abstract
The method includes post copy migrating a guest virtual machine from a migration source host to a migration target host, executing the instruction stream of the guest virtual machine on the migration target host, and determining, by the migration target host, when the guest virtual machine encounters the page fault. When the guest virtual machine encounters the page fault, the method includes requesting, by the migration target host, the not-present page from the migration source host for loading on the migration target host, and emulating, on an emulator executing on or in communication with the migration target host, continued execution of the instruction stream of the guest virtual machine. The method also includes identifying, by the emulator, future page references to future pages from the emulated continued execution of the instruction stream, and requesting the future pages from the migration source host in parallel with the not-present page request.
23 Citations
20 Claims
-
1. A method comprising:
-
post-copy migrating a guest virtual machine from a migration source host to a migration target host, the guest virtual machine having an instruction stream of instructions; executing the instruction stream of the guest virtual machine on the migration target host, the guest virtual machine stalling execution of the instruction stream when the guest virtual machine encounters a page fault for a page reference in the instruction stream to a not-present page, the not-present page being resident on the migration source host and not resident on the migration target host; determining, by the migration target host, when the guest virtual machine encounters the page fault; and when the guest virtual machine encounters the page fault; requesting, by the migration target host, the not-present page from the migration source host for loading on the migration target host; emulating, on an emulator executing on or in communication with the migration target host, continued execution of the instruction stream of the guest virtual machine; identifying, by the emulator, future page references to future pages from the emulated continued execution of the instruction stream; and requesting, by the migration target host, the future pages corresponding to the identified future page references from the migration source host in parallel with the not-present page request for the not-present page, so as to prefetch the future pages to the migration target host while loading the not-present page on the migration target host. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A migration target host comprising:
-
data processing hardware; and memory hardware in communication with the data processing hardware, the memory hardware storing instructions that when executed on the data processing hardware cause the data processing hardware to perform operations comprising; post-copy migrating a guest virtual machine from a migration source host to the memory hardware, the guest virtual machine having an instruction stream of instructions; executing the instruction stream of the guest virtual machine, the guest virtual machine stalling execution of the instruction stream when the guest virtual machine encounters a page fault for a page reference in the instruction stream to a not-present page, the not-present page being resident on the migration source host and not resident on the memory hardware of the migration target host; determining when the guest virtual machine encounters the page fault; and when the guest virtual machine encounters the page fault; requesting the not-present page from the migration source host for loading on the memory hardware of the migration target host; emulating, on an emulator executing on the data processing hardware or in communication with the migration target host, continued execution of the instruction stream of the guest virtual machine; identifying, by the emulator, future page references to future pages from the emulated continued execution of the instruction stream; and requesting the future pages corresponding to the identified future page references from the migration source host in parallel with the not-present page request, so as to prefetch the future pages to the memory hardware of the migration target host while loading the not-present page on the memory hardware of the migration target host. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification