On Mon, Nov 09, 2015 at 11:03:02AM +0000, Dr. David Alan Gilbert wrote: > <snip> > > Oh, I think I see it; the following is untested, I'll grab a machine to > try it on but it will take a little while: > > diff --git a/migration/ram.c b/migration/ram.c > index 62cf42b..e6db965 100644 > --- a/migration/ram.c > +++ b/migration/ram.c > @@ -2273,6 +2274,7 @@ static int ram_load_postcopy(QEMUFile *f) > /* Temporary page that is later 'placed' */ > void *postcopy_host_page = postcopy_get_tmp_page(mis); > void *last_host = NULL; > + bool all_zero = false; > > while (!ret && !(flags & RAM_SAVE_FLAG_EOS)) { > ram_addr_t addr; > @@ -2280,7 +2282,6 @@ static int ram_load_postcopy(QEMUFile *f) > void *page_buffer = NULL; > void *place_source = NULL; > uint8_t ch; > - bool all_zero = false; > > addr = qemu_get_be64(f); > flags = addr & ~TARGET_PAGE_MASK;
So with the above fix on top of the previous one you sent, I am able to do back and forth postcopy migration of pseries guest within the same host while switching to postcopy mode immediately after starting the migration. And btw I can see lots of hits to postcopy_place_page_zero now! Regards, Bharata.