Message ID | 20170824192730.8440-29-dgilbert@redhat.com |
---|---|
State | New |
Headers | show |
Hi On Thu, Aug 24, 2017 at 12:27 PM, Dr. David Alan Gilbert (git) <dgilbert@redhat.com> wrote: > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> > > Now that we have the mechanisms in here, allow shared memory in a > postcopy. > > Note that QEMU can't tell who all the users of shared regions are > and thus can't tell whether all the users of the shared regions > have appropriate support for postcopy. Those devices that explicitly > support shared memory (e.g. vhost-user) must check, but it doesn't > stop weirder configurations causing problems. > Other users should have their own migration blocker, I guess. > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> > --- > migration/postcopy-ram.c | 6 ------ > 1 file changed, 6 deletions(-) > > diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c > index 28791cf1f1..89c3aadda1 100644 > --- a/migration/postcopy-ram.c > +++ b/migration/postcopy-ram.c > @@ -138,12 +138,6 @@ static int test_ramblock_postcopiable(const char *block_name, void *host_addr, > RAMBlock *rb = qemu_ram_block_by_name(block_name); > size_t pagesize = qemu_ram_pagesize(rb); > > - if (qemu_ram_is_shared(rb)) { > - error_report("Postcopy on shared RAM (%s) is not yet supported", > - block_name); > - return 1; > - } > - > if (length % pagesize) { > error_report("Postcopy requires RAM blocks to be a page size multiple," > " block %s is 0x" RAM_ADDR_FMT " bytes with a " > -- > 2.13.5 > >
* Marc-André Lureau (marcandre.lureau@gmail.com) wrote: > Hi > > On Thu, Aug 24, 2017 at 12:27 PM, Dr. David Alan Gilbert (git) > <dgilbert@redhat.com> wrote: > > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> > > > > Now that we have the mechanisms in here, allow shared memory in a > > postcopy. > > > > Note that QEMU can't tell who all the users of shared regions are > > and thus can't tell whether all the users of the shared regions > > have appropriate support for postcopy. Those devices that explicitly > > support shared memory (e.g. vhost-user) must check, but it doesn't > > stop weirder configurations causing problems. > > > > Other users should have their own migration blocker, I guess. Yes, the ones that know about it. The tricky thing is you can add a shared=on to any memory object you add; I don't know that the reason it's shared is purely because it's used by vhost-user - for all qemu knows it could be shared with 5 other things as well. > > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> > > Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Thanks. Dave > > > > --- > > migration/postcopy-ram.c | 6 ------ > > 1 file changed, 6 deletions(-) > > > > diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c > > index 28791cf1f1..89c3aadda1 100644 > > --- a/migration/postcopy-ram.c > > +++ b/migration/postcopy-ram.c > > @@ -138,12 +138,6 @@ static int test_ramblock_postcopiable(const char *block_name, void *host_addr, > > RAMBlock *rb = qemu_ram_block_by_name(block_name); > > size_t pagesize = qemu_ram_pagesize(rb); > > > > - if (qemu_ram_is_shared(rb)) { > > - error_report("Postcopy on shared RAM (%s) is not yet supported", > > - block_name); > > - return 1; > > - } > > - > > if (length % pagesize) { > > error_report("Postcopy requires RAM blocks to be a page size multiple," > > " block %s is 0x" RAM_ADDR_FMT " bytes with a " > > -- > > 2.13.5 > > > > > > > > -- > Marc-André Lureau -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c index 28791cf1f1..89c3aadda1 100644 --- a/migration/postcopy-ram.c +++ b/migration/postcopy-ram.c @@ -138,12 +138,6 @@ static int test_ramblock_postcopiable(const char *block_name, void *host_addr, RAMBlock *rb = qemu_ram_block_by_name(block_name); size_t pagesize = qemu_ram_pagesize(rb); - if (qemu_ram_is_shared(rb)) { - error_report("Postcopy on shared RAM (%s) is not yet supported", - block_name); - return 1; - } - if (length % pagesize) { error_report("Postcopy requires RAM blocks to be a page size multiple," " block %s is 0x" RAM_ADDR_FMT " bytes with a "