Post-copy based live virtual machine migration via speculative execution and pre-paging
First Claim
1. A method comprising:
- determining, by a migration target host, that a guest virtual machine being post-copy migrated from a migration source host to the migration target host and executed on the migration target host encounters a page fault for a page reference in an instruction stream of the guest virtual machine to a not-present page;
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;
examining, by the emulator, at least one instruction in the instruction stream associated with one of the identified future page references to identify at least one additional future page reference; and
requesting, by the migration target host, the future pages corresponding to the identified future page references and the at least one identified additional future page reference from the migration source host and the not-present page request for the not-present page.
0 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.
-
Citations
18 Claims
-
1. A method comprising:
-
determining, by a migration target host, that a guest virtual machine being post-copy migrated from a migration source host to the migration target host and executed on the migration target host encounters a page fault for a page reference in an instruction stream of the guest virtual machine to a not-present page; 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; examining, by the emulator, at least one instruction in the instruction stream associated with one of the identified future page references to identify at least one additional future page reference; and requesting, by the migration target host, the future pages corresponding to the identified future page references and the at least one identified additional future page reference from the migration source host and the not-present page request for the not-present page. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. 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; determining that a guest virtual machine being post-copy migrated from a migration source host to the memory hardware and executed on the data processing hardware encounters a page fault for a page reference in an instruction stream of the guest virtual machine to a not-present page; requesting the not-present page from the migration source host for loading on the memory hardware; 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; examining, by the emulator, at least one instruction in the instruction stream associated with one of the identified future page references to identify at least one additional future page reference; and requesting the future pages corresponding to the identified future page references and the at least one identified additional future page reference from the migration source host and the not-present page request for the not-present page. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification