summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorDr. David Alan Gilbert <dgilbert@redhat.com>2017-02-24 18:28:43 +0000
committerDr. David Alan Gilbert <dgilbert@redhat.com>2017-02-28 11:30:24 +0000
commit0c1f4036db0a166fb74885c377a3691edb9ad659 (patch)
tree0512d0577f2bb2989a6f919d5f4384a70de0d4c0
parent7e8cafb7137502ce006cc48d0265f89399e0cb33 (diff)
downloadfocaccia-qemu-0c1f4036db0a166fb74885c377a3691edb9ad659.tar.gz
focaccia-qemu-0c1f4036db0a166fb74885c377a3691edb9ad659.zip
postcopy: Add doc about hugepages and postcopy
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Message-Id: <20170224182844.32452-16-dgilbert@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-rw-r--r--docs/migration.txt13
1 files changed, 13 insertions, 0 deletions
diff --git a/docs/migration.txt b/docs/migration.txt
index c8b0304d5e..1b940a829b 100644
--- a/docs/migration.txt
+++ b/docs/migration.txt
@@ -540,3 +540,16 @@ request for a page that has already been sent is ignored.  Duplicate requests
 such as this can happen as a page is sent at about the same time the
 destination accesses it.
 
+=== Postcopy with hugepages ===
+
+Postcopy now works with hugetlbfs backed memory:
+  a) The linux kernel on the destination must support userfault on hugepages.
+  b) The huge-page configuration on the source and destination VMs must be
+     identical; i.e. RAMBlocks on both sides must use the same page size.
+  c) Note that -mem-path /dev/hugepages  will fall back to allocating normal
+     RAM if it doesn't have enough hugepages, triggering (b) to fail.
+     Using -mem-prealloc enforces the allocation using hugepages.
+  d) Care should be taken with the size of hugepage used; postcopy with 2MB
+     hugepages works well, however 1GB hugepages are likely to be problematic
+     since it takes ~1 second to transfer a 1GB hugepage across a 10Gbps link,
+     and until the full page is transferred the destination thread is blocked.