summaryrefslogtreecommitdiffstats
path: root/docs/interop
diff options
context:
space:
mode:
authorDr. David Alan Gilbert2018-03-12 18:21:00 +0100
committerMichael S. Tsirkin2018-03-20 04:03:27 +0100
commit9ccbfe14ddfce379ee24684b3648376b130293cd (patch)
tree5e67d4d11622ee9a733f25306940a6fa70bcfef6 /docs/interop
parentpostcopy: Add notifier chain (diff)
downloadqemu-9ccbfe14ddfce379ee24684b3648376b130293cd.tar.gz
qemu-9ccbfe14ddfce379ee24684b3648376b130293cd.tar.xz
qemu-9ccbfe14ddfce379ee24684b3648376b130293cd.zip
postcopy: Add vhost-user flag for postcopy and check it
Add a vhost feature flag for postcopy support, and use the postcopy notifier to check it before allowing postcopy. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Peter Xu <peterx@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'docs/interop')
-rw-r--r--docs/interop/vhost-user.txt10
1 files changed, 10 insertions, 0 deletions
diff --git a/docs/interop/vhost-user.txt b/docs/interop/vhost-user.txt
index cb3a7595aa..91a572d781 100644
--- a/docs/interop/vhost-user.txt
+++ b/docs/interop/vhost-user.txt
@@ -290,6 +290,15 @@ Once the source has finished migration, rings will be stopped by
the source. No further update must be done before rings are
restarted.
+In postcopy migration the slave is started before all the memory has been
+received from the source host, and care must be taken to avoid accessing pages
+that have yet to be received. The slave opens a 'userfault'-fd and registers
+the memory with it; this fd is then passed back over to the master.
+The master services requests on the userfaultfd for pages that are accessed
+and when the page is available it performs WAKE ioctl's on the userfaultfd
+to wake the stalled slave. The client indicates support for this via the
+VHOST_USER_PROTOCOL_F_PAGEFAULT feature.
+
Memory access
-------------
@@ -369,6 +378,7 @@ Protocol features
#define VHOST_USER_PROTOCOL_F_SLAVE_REQ 5
#define VHOST_USER_PROTOCOL_F_CROSS_ENDIAN 6
#define VHOST_USER_PROTOCOL_F_CRYPTO_SESSION 7
+#define VHOST_USER_PROTOCOL_F_PAGEFAULT 8
Master message types
--------------------