mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
Introducing PageFault as the new wire command needed by both postcopy live migration and on demand restore from the offload daemon. This new command describes the need from the destination to fault the page content in. This request describes the page through a MemoryRange structure, and the response can be either 0 or the actual page size. In case it is 0, that means the source had access to the guest memory and was able to copy the page content directly. In case the response is the actual page size, there is a payload associated which contains the page content. We can expect local live migration and offload restore to run locally and therefore have access to the guest memory. The remote live migration over the network is the case where we would expect the page content to be sent over the wire. This command is served through an additional connection happening on the UNIX or TCP socket. The goal is to keep the same codepath between local and remote migrations. This additional channel allows PageFault commands to be issued asynchronously so they can be served without blocking the main connection. A connection role is introduced in order to identify an additional connection related to pre-copy memory versus the newly introduced channel for serving post-copy requests. Signed-off-by: Sebastien Boeuf <sboeuf@meta.com> Assisted-by: Claude:claude-opus-4-7