migration/ram.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Postcopy may also be advised for dirty-bitmap migration only, in which
case the remote page size will not be available and we'll instead read
bogus data, blocking migration with a mismatch error if the VM uses
hugepages.
Fixes: 58110f0acb ("migration: split common postcopy out of ram postcopy")
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
---
migration/ram.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/migration/ram.c b/migration/ram.c
index 7811cde643..6ace15261c 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -3521,7 +3521,7 @@ static int ram_load_precopy(QEMUFile *f)
}
}
/* For postcopy we need to check hugepage sizes match */
- if (postcopy_advised &&
+ if (postcopy_advised && migrate_postcopy_ram() &&
block->page_size != qemu_host_page_size) {
uint64_t remote_page_size = qemu_get_be64(f);
if (remote_page_size != block->page_size) {
--
2.20.1
* Stefan Reiter (s.reiter@proxmox.com) wrote: > Postcopy may also be advised for dirty-bitmap migration only, in which > case the remote page size will not be available and we'll instead read > bogus data, blocking migration with a mismatch error if the VM uses > hugepages. > > Fixes: 58110f0acb ("migration: split common postcopy out of ram postcopy") > Signed-off-by: Stefan Reiter <s.reiter@proxmox.com> Ah! That would explain a report on qemu-discuss a few days ago; yes this makes sense. (However you've literally just missed a migration pull; next time!) Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> > --- > migration/ram.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/migration/ram.c b/migration/ram.c > index 7811cde643..6ace15261c 100644 > --- a/migration/ram.c > +++ b/migration/ram.c > @@ -3521,7 +3521,7 @@ static int ram_load_precopy(QEMUFile *f) > } > } > /* For postcopy we need to check hugepage sizes match */ > - if (postcopy_advised && > + if (postcopy_advised && migrate_postcopy_ram() && > block->page_size != qemu_host_page_size) { > uint64_t remote_page_size = qemu_get_be64(f); > if (remote_page_size != block->page_size) { > -- > 2.20.1 > > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
* Stefan Reiter (s.reiter@proxmox.com) wrote: > Postcopy may also be advised for dirty-bitmap migration only, in which > case the remote page size will not be available and we'll instead read > bogus data, blocking migration with a mismatch error if the VM uses > hugepages. > > Fixes: 58110f0acb ("migration: split common postcopy out of ram postcopy") > Signed-off-by: Stefan Reiter <s.reiter@proxmox.com> Queued > --- > migration/ram.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/migration/ram.c b/migration/ram.c > index 7811cde643..6ace15261c 100644 > --- a/migration/ram.c > +++ b/migration/ram.c > @@ -3521,7 +3521,7 @@ static int ram_load_precopy(QEMUFile *f) > } > } > /* For postcopy we need to check hugepage sizes match */ > - if (postcopy_advised && > + if (postcopy_advised && migrate_postcopy_ram() && > block->page_size != qemu_host_page_size) { > uint64_t remote_page_size = qemu_get_be64(f); > if (remote_page_size != block->page_size) { > -- > 2.20.1 > > > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
© 2016 - 2024 Red Hat, Inc.